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则回转不成功,还没有弄明白原因。