东东东 陈煜东的博客

月份存档: 八月 2012

IE6显示透明png图片

IE6,最烦人了,好多bug,还是等它慢慢的灭亡吧。

2012年7月浏览器份额

根据cnzz的浏览器使用率统计显示2012年7月分IE6的使用率还有21.51%的使用率,而IE系列的具有52%的使用率还是挺高的。360安全浏览器也很高。见下表。

浏览器类型 2012年07月使用率 2012年07月占有率
Internet Explorer 51.91% 51.93%
Internet Explorer 6.0 21.51% 21.37%
360安全浏览器 23.59% 24.12%

对img元素修改

如果对img元素进行修改的话。使用IE的滤镜来更改。

<img alt="src.png" class="png" />

添加css样式

img.png {background-image: expression(this.runtimeStyle.backgroundImage = "none",this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "', sizingMethod='image')",this.src = "images/1.gif")}

注意,css的最后面有个images/1.gif,要修改成自己的具体地址,这是一个新引入的图片,不会影响之前的图片的显示的,下载地址

这样修改后就可以让IE6显示透明的png了。

分类: 网站建设

pureftp网页管理页面mysql server not found

在安装了lnmp包后,又安装了ftp,进入ftp管理地址http://你的域名或IP/ftp/install.php

Error: MySql server not found. MySql error : Access denied for user ‘ftp’@’localhost’ (using password: YES)

http://www.vpser.net/manage/lnmp-pureftpd-cp.html 上说的是0.7版本后此文不适用。

http://www.cnweed.com/1480.html 说更改权限。更改完后,还是出现该错误。在我后面修改完后,可以登录的情况下,我对此进行试验,没有必要。只要有基本的select、delete、insert、update即可。

但是都不管用,原来我在安装的时候,设置密码,我的密码中有个引号’,这个的存在导致了密码字符串出了问题。更改密码后,发现可以出现登陆界面。

但是ftp管理员的密码不对,应该又是在设置ftp管理员密码的时候出了问题,通过md5一次加密后,更改密码。这才登陆成功。

这次的事件,主要是由特殊符号引起的,以后在将特殊符号写入到文件的时候要注意这样的情况。

后续,在使用ftp登陆,发现不能登陆,只有Linux系统用户可以登陆。

分类: 网站建设

lnmp安装包nginx启用ipv6

网站增加了ipv6,使用了nginx服务器,但是使用ipv6地址直接访问nginx,不能连接。查看端口监听情况,并没有监听ipv6的80端口。

查看nginx是否启用ipv6

/usr/local/nginx/sbin/nginx -V  # 自己源码编译安装
/usr/bin/nginx -V               # yum或apt-get自动安装的
configure arguments:   --with-ipv6

省略了一些东西,如果输出中有--with-ipv6,那么说明ngnix已经安装了ipv6模块,否则要先安装ipv6模块。

修改nginx服务器配置文件

/usr/local/nginx/conf/nginx.conf

我装了apache后,原来的nginx配置全部又重新恢复了,我再次使用[::]:80不能绑定到ipv6的80端口上,出现

nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)

我检查80端口,就是没有被占用,换成其他的8080端口就正常。

最后,我是这样设置的,ipv6的80端口可以监听了。

listen 80;
listen [::]:80 ipv6only=on;

另外一种方法。这个方法是在普通的虚拟主机下可用的。

server{
    listen 80;  #此处监听所有ipv4地址
    listen [::]:80; #此处监听所有ipv6地址
    }

重新加载nginx服务器

# /usr/local/nginx/sbin/nginx -s reload

查看端口监听

netstat -ntlp

tcp    0    0 0.0.0.0:80    0.0.0.0:*     LISTEN    1655/nginx.conf
tcp    0    0 :::80         :::*          LISTEN    1655/nginx.conf

0.0.0.0:80说明ipv4的80端口都在监控中。而:::80说明ipv6的80端口都在监控中。

现在就可以使用ipv6访问网站了。

推荐:观看ipv6网络电视

分类: 网站建设

swt/jface中FileDialog的使用

在SWT/JFace中,使用文件对话框选择文件。貌似awt和swing应该都提供文件选择对话框,不过之前都没用过。有了自带的文件对话框,就不用可以把更多的时间发在其他功能的实现上了。

下面说说具体的org.eclipse.swt.widgets.FileDialog的使用

选择单个文件

FileDialog dialog = new FileDialog(window.getShell(), SWT.OPEN);
dialog.setFilterPath("");// 设置默认的路径
dialog.setText("对话框标题");//设置对话框的标题
dialog.setFileName("");//设置默认的文件名
dialog.setFilterNames(new String[] { "文本文件 (*.txt)", "所有文件(*.*)" });//设置扩展名
dialog.setFilterExtensions(new String[] { "*.txt", "*.*" });//设置文件扩展名
String fileName = dialog.open();//

选择多个文件

FileDialog dialog = new FileDialog(shell,SWT.OPEN|SWT.MULTI);
String fileName = dialog.open();//返回最后一个选择文件的全路径
String[] fileNames = dialog.getFileNames();//返回所有选择的文件名,不包括路径
String path = dialog.getFilterPath();//返回选择的路径,这个和fileNames配合可以得到所有的文件的全路径

保存文件对话框

FileDialog dialog = new FileDialog(shell,SWT.SAVE);
 String fileName = dialog.open();  //获得保存的文件名

此方法只能获得用户的路径+文件名,需要自己写方法去保存文件,如果用Java7,那么就用NIO,方便快捷。比如Files.write()方法。

分类: Java

Linux添加、创建新用户

给Linux添加新用户,新建用户,新建帐号

添加用户组

sudo groupadd groupname

添加用户

sudo useradd username -m -s /sbin/nologin -d /home/username -g groupname
-s /sbin/nologin 设置不能登陆 -s /bin/false(老方法) 也行
-d 设置用户主目录
-g 用户组
-m 创建用户目录

useradd的具体参数为

[root@317304 ~]# useradd --help
Usage: useradd [options] LOGIN

Options:
  -b, --base-dir BASE_DIR       base directory for the home directory of the
                                new account
  -c, --comment COMMENT         GECOS field of the new account
  -d, --home-dir HOME_DIR       home directory of the new account
  -D, --defaults                print or change default useradd configuration
  -e, --expiredate EXPIRE_DATE  expiration date of the new account
  -f, --inactive INACTIVE       password inactivity period of the new account
  -g, --gid GROUP               name or ID of the primary group of the new
                                account
  -G, --groups GROUPS           list of supplementary groups of the new
                                account
  -h, --help                    display this help message and exit
  -k, --skel SKEL_DIR           use this alternative skeleton directory
  -K, --key KEY=VALUE           override /etc/login.defs defaults
  -l, --no-log-init             do not add the user to the lastlog and
                                faillog databases
  -m, --create-home             create the user's home directory
  -M, --no-create-home          do not create the user's home directory
  -N, --no-user-group           do not create a group with the same name as
                                the user
  -o, --non-unique              allow to create users with duplicate
                                (non-unique) UID
  -p, --password PASSWORD       encrypted password of the new account
  -r, --system                  create a system account
  -s, --shell SHELL             login shell of the new account
  -u, --uid UID                 user ID of the new account
  -U, --user-group              create a group with the same name as the user
  -Z, --selinux-user SEUSER     use a specific SEUSER for the SELinux user mapping

更改用户登录权限

在增加了-s /sbin/nologin 参数后,那么这个帐号就不能登陆了,如果想要恢复登陆使用

sudo usermod -s /bin/bash username

禁用用户登录权限

sudo usermod -s /sbin/nologin username

设置密码

给用户设置密码,这样帐号就能使用了。

sudo passwd username

删除用户

删除用户

sudo userdel username

分类: Linux

TP-LINK无线路由器在加密下可以获得IPv6地址

看见一篇文章,作者说无线路由器不能获得ipv6的地址,把TP-LINK无线路由器当成无线交换机后,在加密连接方式下不能获得ipv6地址,只有在禁用了无线加密功能后,采用未加密的网络连接方式可以获得ipv6的地址。

看了这篇文章后,我感到很奇怪,首先我确信在没有启用加密连接的无线信号下,可以获得ipv6地址。因为我以前就是这样使用的,懒得设置密码,而且是使用静态ip上网的,他人以为是DHCP自动获得ip的,所以没必要设置。

问题来了,可是在加密的情况下,我也有连接过无线,照样可以获得ipv6的地址。所以当看到那篇文章的作者说使用无线加密连接后不能获得ipv6,感到很疑惑。

我为了验证一下在加密的情况下是否能获得ipv6地址,我拿了一个TP-LINK TL-WR740N无线路由器,断开端口WAN口,先关闭路由器的DHCP服务,然后给路由器设置了无线的加密方式WPA2-PSK,将与外界连通的网线接入LAN端口,形成无线交换机模式。最后连接无线,确认可以获得ipv6地址。

附图:在无线网络加密连接下获得ipv6地址

无线加密连接获得ipv6地址

在无线网络加密连接下获得ipv6地址,图中说明连接网络为"TP-LINK_9FE9E6",加密方式为WPA2-PSK,并且获得了ipv6地址。

分类: 网络

unicode与字符相互转换

在许多场合中,我们会使用到Unicode码,但是unicode编码的形式我们却没办法直观知道是哪个字符,这样我们就需要对讲Unicode码转换成我们认识的汉字字符。

什么是Unicode?

Unicode(统一码、万国码、单一码、标准万国码)是计算机科学领域里的一项业界标准。它对世界上大部分的文字系统进行了整理、编码,使得电脑可以用更为简化地方式来呈现和处理文字。

–Wikipedia

Unicode字符用什么表示?

Unicode通常使用U+XXXX,XXXX四位十六进制数,例如U+4F60。但是在Unicode 3.0后,Unicode使用“U-”然后紧接着八位十六进制数,在Unicode 3.0之前,使用的”U+”后面跟的四位十六位进制数。

在Java对Unicode的实现就不是用这样表示的。Java的形式是”\uXXXX”,例如”\u4F60” 是汉字“你”。

有时候,我们使用在文件中使用汉字字符,但是当文件的编码发生改变的时候,那么就会出现乱码了。如果我们使用unicode的转移形式(”\uXXXX”)去表示中文,那么我们改变文件的编码的时候,就不会出现乱码了,因为我们使用的是ASCII字面值去存储文本的。

但是这样观看Unicode码不够直观,我们不知道具体是什么汉字,所以我们需要通过转换,这样我们就知道具体对应的是什么汉字了。

将Unicode码转化为汉字字符

public static String UnicodetoString(String s){
    String ss[] =  s.split("\\\\u");
    StringBuilder sb=new StringBuilder(ss.length-1);
    for (int i = 1; i &lt; ss.length; i++) {
        sb.append((char)Integer.parseInt(ss[i], 16));
    }
    return sb.toString();
}

获取汉字字符的Unicode码

public static String StirngtoUnicode(String s){
    StringBuilder sb=new StringBuilder();
    for (int i = 0; i &lt; s.length(); i++) {
        sb.append(String.format("\\u%04x", (int)s.charAt(i)));
    }
    return sb.toString();
}

 

因为String.format()方法是用return new Formatter().format(format, args).toString(); 所以先创建一个Formatter对象,减少对象的使用。

public static String StringtoUnicode(String s){

    Formatter formatter = new Formatter();
    for (int i = 0; i &lt; s.length(); i++) {
        formatter.format("\\u%04x", (int)s.charAt(i));
    }
    return formatter.toString();
}

http://docs.oracle.com/javase/tutorial/i18n/text/string.html

分类: Java

Copyright © 2017 东东东 陈煜东的博客 粤ICP备13059639号-1

SITEMAP回到顶部 ↑