native2ascii unicode编码和中文转换

2011-1-6

1.找到jdk的bin目录:

    进入到jdk的bin之下,有一个native2ascii.exe,就是它!

“运行”-“cmd”-“cd %JAVA_HOME%/bin”

2.在我的目录“C:/nie/”之下有一个cn.txt,内容如下:

name=小兔子
gender=女
age=20
birth=199104
province=北京
city=北京
hobby=运动看书
#-------------------
ecol.100=不详
ecol.101=无格
ecol.102=无格或有格
ecol.103=红格
ecol.104=红格或无格
ecol.105=红栏格
ecol.106=红边栏
ecol.107=绿格
ecol.108=蓝格
ecol.109=蓝格或黑格
ecol.110=蓝格或无格
ecol.111=黑格
ecol.112=黑格或无格
ecol.113=黑格或蓝格或红格
ecol.114=黄格
ecol.115=紫格
ecol.116=朱格
ecol.117=方格
ecol.118=小方格
ecol.119=红方格
ecol.120=横格
ecol.121=兰格
ecol.122=米格
ecol.123=白格
ecol.124=直格
ecol.125=竹简形行格
ecol.126=红格或黑格
ecol.127=兰格或红格
ecol.128=墨栏
ecol.129=乌丝栏

  转换成unicode:

native2ascii -encoding GBK c:\nie\cn.txt c:\nie\cn_gbk.txt    //GB2312也可以
name=\u5c0f\u5154\u5b50
gender=\u5973
age=20
birth=199104
province=\u5317\u4eac
city=\u5317\u4eac
hobby=\u8fd0\u52a8\u770b\u4e66
#-------------------
ecol.100=\u4e0d\u8be6
ecol.101=\u65e0\u683c
ecol.102=\u65e0\u683c\u6216\u6709\u683c
ecol.103=\u7ea2\u683c
ecol.104=\u7ea2\u683c\u6216\u65e0\u683c
ecol.105=\u7ea2\u680f\u683c
ecol.106=\u7ea2\u8fb9\u680f
ecol.107=\u7eff\u683c
ecol.108=\u84dd\u683c
ecol.109=\u84dd\u683c\u6216\u9ed1\u683c
ecol.110=\u84dd\u683c\u6216\u65e0\u683c
ecol.111=\u9ed1\u683c
ecol.112=\u9ed1\u683c\u6216\u65e0\u683c
ecol.113=\u9ed1\u683c\u6216\u84dd\u683c\u6216\u7ea2\u683c
ecol.114=\u9ec4\u683c
ecol.115=\u7d2b\u683c
ecol.116=\u6731\u683c
ecol.117=\u65b9\u683c
ecol.118=\u5c0f\u65b9\u683c
ecol.119=\u7ea2\u65b9\u683c
ecol.120=\u6a2a\u683c
ecol.121=\u5170\u683c
ecol.122=\u7c73\u683c
ecol.123=\u767d\u683c
ecol.124=\u76f4\u683c
ecol.125=\u7af9\u7b80\u5f62\u884c\u683c
ecol.126=\u7ea2\u683c\u6216\u9ed1\u683c
ecol.127=\u5170\u683c\u6216\u7ea2\u683c
ecol.128=\u58a8\u680f
ecol.129=\u4e4c\u4e1d\u680f

  而且这两种生成的编码是相同的,因为GBK兼容GB2312;

 

3.现在反过来按照GBK编码再转回中文本地:

native2ascii -reverse -encoding GBK c:\nie\cn_gbk.txt c:\nie\gbk_back.txt

 或者:

native2ascii -reverse c:\nie\cn_gbk.txt c:\nie\gbk_back.txt

 都会产生转换转换结果如上面的中文!

 

“GBK”、“GB2312”、“8859_1”可以互转;

但是/unicode/UTF-8转换之后不能转回中文;

--------------------------------------风骚的分割线-------------------------------------

4.小结:

    如果要使用本地中文转换成unicode编码:

使用参数:native2ascii -encoding GBK(或者GB2312);

    如果要使用unicode再转换回来生成我们看的懂的中文:

使用参数:native2ascii -reverse -encoding GBK(或者GB2312);也可以省掉-encoding GBK(或者GB2312),只用-reverse就可以。

5.备注:如果是要转换成8859_1的话,再翻转中文的时候就必须加上-encoding 8859_1才可以回转成中文;其他的UTF-8则回转不成功,还没有弄明白原因。

你可能感兴趣的:(jdk,C++,c,C#)