# Java 属性文件编码问题

**URL:** <https://www.isharkfly.com/t/java/1785>\
**Category:** 程序语言\
**Created:** [August 20, 2010, 1:06am UTC](https://www.isharkfly.com/t/java/1785 "2010-08-20T01:06:16Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![honeymoose](https://www.isharkfly.com/user_avatar/www.isharkfly.com/honeymoose/32/20796_2.png) [@honeymoose](https://www.isharkfly.com/u/honeymoose)\
**Post date:** [August 20, 2010, 1:06am UTC](https://www.isharkfly.com/t/java/1785/1 "2010-08-20T01:06:16Z")

</div>

Property 文件中，使用的编码方式根据机器本身的设置可能是GBK或者UTF-8。

而在Java程序中读取Property文件的时候使用的是Unicode编码方 式，这种编码方式不同会导致中文乱码。

因此需要将Property文件中的中文字符转化成Unicode编码方式才能正常显示中文。

Java提供了专门的工具对Property文件进行Unicode转化，这种工具就是native2ascii，它在JDK安装环境的bin目录下。

native2ascii 工具将带有本机编码字符（非拉丁 1 和非单一码字符）的文件转换成带有Unicode编码字符的文件。

假设需要转化的属性文件为：D:\src\resources.properties（含有中文字符）

转化后的属性文件为：D:\classes\resources.properties（中文字符统一转化为Unicode）

那么使用如下命令`JAVA_HOME\bin\native2ascii -encoding GBK D:\src\resources.properties D:\classes\resources.properties`就能将含有中文字符的属性文件转化成单一Unicode编码方式的属性文件。中文乱码自然会被解决。
