java - 平台在不同平台上的默认字符集?

标签 java character-encoding platform

一些遗留代码依赖于平台的默认字符集进行翻译。对于“西方世界”中的 Windows 和 Linux 安装,我知道这意味着什么。但是考虑到俄罗斯或亚洲平台,我完全不确定他们平台的默认字符集是什么(只是 UTF-16?)。

因此我想知道执行以下代码行时会得到什么:

System.out.println("Default Charset=" + Charset.defaultCharset());

PS:

我不想在这里讨论字符集的问题及其与 Unicode 的区别。我只想收集什么操作系统会产生什么特定的字符集。请仅发布具体值!

最佳答案

这是用户特定的设置。在许多现代 Linux 系统上,它是 UTF-8。在 Mac 上,它是 MacRoman。在美国的 Windows 上,它通常是 CP1250,在欧洲,它是 CP1252。在中国,您经常会看到简体中文(Big5 或 GB*)。

但这是系统默认设置,每个用户都可以随时更改。这可能是解决方案:使用系统属性 file.encoding

启动应用程序时设置编码

See this answer怎么做。我建议将其放入启动您的应用程序的小脚本中,这样用户默认设置就不会受到污染。

关于java - 平台在不同平台上的默认字符集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9312816/

相关文章:

java - gradle windows java.io.IOException : CreateProcess error=206, 文件名太长

java - Spring 数据 JPA : Query by Example?

PHP PDO : Charset=UTF8 : An invalid keyword charset was specified in the dsn string

java - 读写分离是否提高了程序效率?

iOS:在具有特殊字符编码的标签中显示 NSStrings 的 NSArray

php - 如何修复 laravel Seed 中的 UTF8?

C 检查有符号数表示

c++ - 应用程序无法启动,因为它无法找到或加载 QT 平台插件 "windows"

android - Android 中使用的默认 C++ 版本是什么?

java - 将输入字符串转换为二维数组,然后使用索引文件将其提取