有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JVM字符集。defaultCharset()不返回预期的字符集

我的操作系统是windows 7,语言为希伯来语,代码中使用Java 6。 我已将我的区域设置更改为英语(美国),并将显示语言更改为英语。 我重新启动电脑,然后在java代码中尝试获取默认字符集,如下所示:

String str = Charset.defaultCharset().name();

结果,str被设置为windows-1255
这意味着它仍然使用希伯来语作为默认字符集
有什么问题吗


共 (1) 个答案

  1. # 1 楼答案

    根据OpenJDK源代码,file.encoding因此defaultCharset()在Windows上的设置如下:

    Java 6:^{}API函数,对应于区域和语言控制面板小程序的“格式”选项卡上的“格式”选项

    Java 7:^{}API函数,该函数对应于区域和语言控制面板小程序的“管理”选项卡上的“非Unicode程序的语言”,除非将sun.locale.formatasdefaultJava系统属性设置为true,这将恢复为Java 6行为

    因此,对于Java6,格式是要更改的设置