native2ascii 解决字符集编码问题
关键字: 技术文章1,原理
Property 文件中,使用的编码方式根据机器本身的设置可能是GBK或者UTF-8。而在Java程序中读取Property文件的时候使用的是Unicode编码方 式,这种编码方式不同会导致中文乱码。因此需要将Property文件中的中文字符转化成Unicode编码方式才能正常显示中文。
2,解决办法
Java提供了专门的工具对Property文件进行Unicode转化,这种工具就是native2ascii,它在JDK安装环境的bin目录下。
native2ascii 工具将带有本机编码字符(非拉丁 1 和非单一码字符)的文件转换成带有Unicode编码字符的文件。
假设需要转化的属性文件为:D:\resource\testone.properties(含有中文字符)
转化后的属性文件为:D:\resourcetwo\testtwo.properties(中文字符统一转化为Unicode)
那么使用如下命令
JAVA_HOME\bin\native2ascii -encoding GBK D:\resource\testone.properties D:\resourcetwo\testtwo.properties
就能将含有中文字符的属性文件转化成单一Unicode编码方式的属性文件。中文乱码自然会被解决。
背景: 在做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,比如常见的validator验证用的消息资源(properties)文 件就需要进行Unicode重新编码。原因是java默认的编码方式为Unicode,而我们的计算机系统编码常常是GBK等编码。需要将系统的编码转换 为java正确识别的编码问题就解决了。
native2ascii -[options] [inputfile [outputfile]]
-reverse:将Unicode编码转为本地或者指定编码,不指定编码情况下,将转为本地编码。
-encoding encoding_name:转换为指定编码,encoding_name为编码名称。
[inputfile [outputfile]]
inputfile:表示输入文件全名。
outputfile:输出文件名。如果缺少此参数,将输出到控制台。
native2ascii zh.txt u.txt
打开u.txt,内容为“\u7194\u5ca9”。
\u7194\u5ca9
可以看到,控制台输出了“\u7194\u5ca9”。
native2ascii -encoding ISO8859-1 zh.txt i.txt
打开i.txt文件,内容为“\u00c8\u00db\u00d1\u00d2”。
native2ascii -reverse u.txt u_nv.txt
打开u_nv.txt文件,内容为“熔岩”。
C:\test>native2ascii -reverse u.txt
熔岩
可以看到,控制台输出了“熔岩”。
native2ascii -reverse i.txt i_nv.txt
打开i_nv.txt文件,内容为“\u00c8\u00db\u00d1\u00d2”。发现转码前后完全一样的。也就是说,等于没有转,或者说思想糊涂,对命名没有理解。。
native2ascii -reverse -encoding GBK i.txt i_gbk.txt
打开i_gbk.txt文件,内容为“\u00c8\u00db\u00d1\u00d2”。发现转码前后完全一样的。也就是说,等于没有转,或者说思想糊涂,对命名没有理解。
C:\test>native2ascii -reverse -encoding ISO8859-1 i.txt
熔岩
从这个结果看,目标达到到了,编码i.txt为ISO8859-1,转为本地编码后内容为“熔岩”。从这里应该意识到,native2ascii -reverse命令中-encoding指定的编码为源文件的编码格式。而在native2ascii 命令中-encoding指定的编码为(生成的)目标文件的编码格式。这一点非常的重要!切记!!
I:将纯字母数字的文本文件12a.txt转换为Unicode编码
native2ascii 12a.txt 12a_nv.txt
打开12a_nv.txt文件,内容为“12axyz”。
继续测试,转为ISO8859-1编码看看
C:\test>native2ascii -encoding ISO8859-1 12a.txt
12axyz
结果还是没有转码。
从结果可以得出结论:对于纯数字和字母的文本类型件,转码前后的内容是一样的。
发表评论
- 浏览: 1219 次
- 性别:

- 来自: 深圳

- 详细资料
搜索本博客
我的相册
共 1 张
最近加入圈子
最新评论
-
狂妄马云为何不再害怕沃尔 ...
狗屁文章...马云还是在b2c搞到第一再说。
-- by ray_linn -
狂妄马云为何不再害怕沃尔 ...
hlaijava 写道 B2C为传统零售企业提供绿色通道 国美、沃尔玛 ...
-- by buaawhl -
狂妄马云为何不再害怕沃尔 ...
253 lz...
-- by lordhong -
狂妄马云为何不再害怕沃尔 ...
软就一个字。。。。
-- by trans -
狂妄马云为何不再害怕沃尔 ...
好软,淘宝网超越沃尔玛,恩,我等着那一天
-- by yingqing






评论排行榜