JEP 400:默认为 UTF-8
概括
指定 UTF-8 作为标准 Java API 的默认字符集。通过此更改,依赖于默认字符集的 API 将在所有实现、操作系统、区域设置和配置中表现一致。
目标
-
当 Java 程序的代码依赖于默认字符集时,使 Java 程序更具可预测性和可移植性。
-
澄清标准 Java API 在何处使用默认字符集。
-
在整个标准 Java API(控制台 I/O 除外)中标准化 UTF-8。
非目标
-
定义新的标准 Java API 或受支持的 JDK API 并不是我们的目标,尽管这一努力可能会发现新的便利方法可能使现有 API 更易于使用或更易于使用的机会。
-
无意弃用或删除依赖默认字符集而不是采用显式字符集参数的标准 Java API。
动机
用于读取和写入文件以及处理文本的标准 Java API 允许将_字符集_作为参数传递。字符集控制原始字节和char
Java 编程语言的16 位值之间的转换。支持的字符集包括 US-ASCII、UTF-8 和 ISO-8859-1 等。
如果未传递 charset 参数,则标准 Java API 通常使用_默认 charset_。 JDK 在启动时根据运行时环境选择默认字符集:操作系统、用户的区域设置和其他因素。