我正在测试我的应用程序的i18n兼容性.我有一个英文版的Windows 7,这意味着系统的显示语言是英语.我将系统区域设置为非unicode应用程序的中文.
我的应用程序在导出jdk1.6下的中文字符的Html文件时遇到问题,但在jdk1.7下运行时工作正常.
我调试它,发现直接原因是Charset.defaultCharset()返回了不同的值.
在jdk1.7下Charset.defaultCharset()返回GBK,这是中文的charset.
在jdk1.6下Charset.defaultCharset()返回window_1252,这是拉丁语的charset.
我知道问题可以通过utf-8代码字符集来解决,比如代码.
但我想知道为什么Charset.defaultCharset()在JDK1.7和JDK 1.6下返回不同的值.
java encoding internationalization character-encoding windows-7