对于Java中的properties文件,没有深究过,为什么文件中的非ascii码字符需要使用unicode转义码的形式表示。
甚至于对于怎么做成这种形式的文件都模糊不清。今天讨论之后,然后查了一下资料,才有了进一步的了解。
因为一般解析Java中的properties文件时,都是使用Java自带的类java.util.Properties。想要使用这个类就必须保证文件符合该类的解析格式要求。根据JDK文档中的说明,load()和store()方法处理的字符是ascii码以及unicode转义码。因此要保证做成的properties文件满足这种要求。
通常的做法是按照不同文件编辑方式编辑保存,然后使用JDK的工具native2ascii 将文件转换成这种格式。
即ascii码以外的字符都使用\uxxxx的unicode转义码表示。
native2ascii -encoding 当前字符集 转换前文件名 转换后文件名
相反的操作是可以将该格式的文件转换成本地编码格式
native2ascii -reverse -encoding 指定字符集 转换前文件名 转换后文件名
也再次明确了native2ascii 不是将本地编码格式的文件转换成unicode编码格式的文件,而是将非ascii码的字符
用unicode转义码来显示。
来源:oschina
链接:https://my.oschina.net/u/265105/blog/68646