对于不同编码,一直以来都是一个问题,对于我们来说就是中文乱码的问题,这是个什么学JAVA的人都会问上并遇上N次的问题,在编码C/S的JSP的程序的时候也会遇到,我们可以采用过滤器的方式,实现统一编码,以使其不会出现乱码,但是有些时候却又不适合采用过滤器,如将WINDOWS编写的JAVA程序拿到LINUX或者是UNIX系统上,多半是乱码,并且如果不熟悉或者是身边没有这些系统的高手,只有摇头叹头了。
现在有了这个东西,可以将其它非UNICODE编码转换成UNICODE的形式,移植到任何系统上都不会出现乱码的问题了,这个小程序在在JDK的bin目录下,使用语法是:
native2ascii [-reverse] [-encoding 编码] [输入文件 [输出文件]]
其中的-reverse是UNICDOE为当前系统所对应的编码,"-encoding 编码"表示将当前系统的指定编码转换为unicode,这个选项可以省略,默认为当前系统对应的编码,输入文件为源文件,输出文件是目标文件,如有一个test.properties,其中的内容为:
#This is a test
test=这是测试的中文原文
采用命令:native2ascii -encoding GBK test.properties testunicode.properties执行后,test
unicode.properties的内容如:
#This is a test
test=\u8fd9\u662f\u6d4b\u8bd5\u7684\u4e2d\u6587\u539f\u6587
移植到那个平台都不会变了。
再执行:native2ascii -reverse testunicode.properties test2.properties
可以看到test2.properties的内容为:
#This is a test
test=这是测试的中文原文
又还原为原来的编码了。
如果我们只有命令行打入命令native2ascii,这是系统会等你输入文字,然后在你按回车的时候以unicode回显,这种情况适合单个字符的转译。
native2ascii唯一不足的就是不能够对对整个目录进行统一编译,如果需要转译的文件比较多,得自己写一个循环文件了,总的来说已经不错了。