最近使用 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程序时,则有可能出现中文无法显示,具体的处理方法,暂未找到。