今天用到了 *.propeties 文件转码,又用到了JDK 中的这个可爱的小工具,干脆把用法写下来。
用法:native2ascii [-reverse] [-encoding 编码] [输入文件 [输出文件]]
网上的说法也不是很详细:
----------------------------------------------------------------------------------
说明
Java 编译器和其它 Java 工具只能处理含有 Latin-1 和/或 Unicode 编码(\udddd 记号)字符的文件。native2ascii 将含有其它字符编码的文件转换成含 Latin-1 和/或 Unicode 编码字符的文件。
若省略 outputfile,则使用标准输出设备输出。此外,如果也省略 inputfile,则使用标准输入设备输入。
选项
-reverse 执行相反的操作:将含 Latin-1 和/或 Unicode 编码字符的文件转换成含本地编码字符的文件:
-encoding encoding_name 指定转换程序使用的编码名称。预设的编码从系统属性 file.encoding 中得到。 encoding_name 字符串必须是下表第一栏所示的字符串。
----------------------------------------------------------------------------------
我做的操作,在 C 盘下面粘贴了一个 properties 文件 config.properties 。分别转换为 gbk ,utf-8,UTF-8。
转换前: login.missName.err=请输入用户名
转换命令: native2ascii -encoding gbk config.properties config_gbk.properties
native2ascii -encoding utf-8 config.properties config_utf8.properties
native2ascii -encoding UTF-8 config.properties config_UTF8.properties
转换后: login.missName.err=\u8bf7\u8f93\u5165\u7528\u6237\u540d (gbk编码)
login.missName.err=\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u00fb\ufffd\ufffd\ufffd(utf-8)
login.missName.err=\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u00fb\ufffd\ufffd\ufffd(UTF-8)
结论: 这里转换的编码,utf-8 UTF-8 是没有分别的。