目前的程序代码都是在window编写,编码格式为GBK。转移到linux下,编译正常,在控制台运行时中文输出为乱码。查linux的LANG发现为UTF-8,于是修改为GBK。再次运行程序,依然为乱码。百思不得其解,查各种资料,也都是在LANG等各种配置上解决,可我已经修改了,而且桌面、菜单上的中文都显示正常。问题出现在哪里?灵感来了挡不住,我突然想可能是控制台本身是否有编码配置呢?检查终端控制台的菜单项,果然有一个编码项,其设置的正好为UTF-8.修改为GBK以后,再次运行程序,中文输出正常。
在为解决上述问题查资料的过程中,发现有位同学提了一个这样的问题:
CharSetTest.java文件内容如下,在Windows下编译为class文件。
import java.nio.charset.Charset;
import java.io.OutputStreamWriter;
import java.io.ByteArrayOutputStream;
public class CharSetTest {
public static void
main(String[] args) {
System.out.println("Default Charset=" +
Charset.defaultCharset());
System.setProperty("file.encoding",
"Latin-1");
System.out.println("file.encoding="