文章标签 ‘编码’
最近使用linux系统(ubuntu)开发,由于公司的java项目都是使用的GBK编码,发现,我打的war包发布后,中文很多是乱码,在编辑器已经选择为GBK,并且能正常打开,查看代码中的汉字。 经过n此google后,终于找到了问题的所在,原来java程序在javac编译为class时,要对汉字进行16进制的转换,而转换的字符集是按照系统当前进行转换的,所以,虽然在eclipse是使用gbk打开的,但是在编译时,则使用的utf-8,从而导致中文乱码,在javac编译是,设置参数 -encoding GBK 即可,在builde文件中,可以在javac里面增加 <compilerarg line=”-encoding GBK”/> 则可以解决。 同时,在google过程中,发现一个java程序使用字体的问题,同事最仅在作的项目是一个java应用程序,使用的swing,其程序在我的ubuntu下运行,中文部分为口,无法显示,在google过程中,有人讲解说,java实现了自己的一套中文字体加载使用体系,在jdk的jre/lib下有fonts目录,里面有java使用的字体,同时还有fontconfig等配置文件,从而实现,java程序的汉字显示,所以在跨jdk,执行java程序时,则有可能出现中文无法显示,具体的处理方法,暂未找到。
自己近来一直使用FireFox,所以很少使用IE,由于将我QQ空间转向到Liangpeng.net,所以有了一部分IE的”忠实”用户,偶尔回来的偶的blog,普遍反应,“打不开”,为啥呢,我自己试了,没问题呀,自己用IE试了也没问题,用家里的娱乐电脑一试,还真是有这个问题,于是乎,找了半天的原因,html内容已经下载完成,就是不显示,开始以为是自己页面的编码问题,找了半天原因,也没搞定,突然想起IE的编码设置,一看,居然是GB2312,晕,偶明明添加 <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8” /> 了,为啥还是GB2312,郁闷,点成自动,居然就没问题了,但是后来发现普遍用户都没有点选自动识别,所以还得找原因,原来IE还真有点弱智,是根据HTML解析时的第一个字符来进行编码判断的,所以一般会根据<title>里面的中文内容进行识别,而很容易识别成GB2312,所以需要将 <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8” /> 放在<title>前面,首先告诉IE,我他妈的是UTF-8,随之问题解决。 真是浪费时间呀。
