解决 Java 程序的乱码问题
早上来上班,同事问在本机好好的 Java 程序,放到服务器上运行的时候,输出的中文字符总是显示乱码。我大致看了一下,猜测应该是 .java 文件编码和相关 Java 环境引起的问题。
同 事的本地开发环境是 Windows,默认文件编码为 GBK,服务器为 Redhat Linux,默认文件编码为 ISO-8859-1,两种字符编码并非完全一致。如果要保证 Java 程序中的中文字符能够被正确输出,最好能够自己精确地指定相关的参数。在编译时,指定源文件所使用的字符编码:
javac encoding gbk ChineseString.java
若是利用 ant 编译,可以在 build.xml 中有 javac 的那一样指定 encoding 属性:
<javac srcdir="${src}" destdir="${build}" encoding="gbk" debug="off">
在运行时,修改 JVM 的环境变量,将 file.encoding 属性指定为 GBK:
java -Dfile.encoding=gbk ChineseString
按照以上步骤编辑运行,即可以避免 Java 程序在处理中文时常出现的乱码问题。