我有一个关于Charset.forName(String charsetName)的问题。是否有一个可供参考的charsetNames列表?例如,对于UTF-8,我们使用"utf8"作为charsetName。那么WINDOWS-1252、GB18030等呢?
我有一个关于Charset.forName(String charsetName)的问题。是否有一个可供参考的charsetNames列表?例如,对于UTF-8,我们使用"utf8"作为charsetName。那么WINDOWS-1252、GB18030等呢?
SortedMap<String, Charset> map = Charset.availableCharsets();
map.keySet().stream().forEach(System.out::println);
Java Charset 库需要接受一些基本编码:ASCII、Latin-1(ISO-8859-1)和一些 UTF 变体,你可以在 this answer 中看到列出的列表。对于任何实际用途来说,这是一个相当无用的列表,除非你的范围仅限于 Latin-1。实际上,Java 类可以处理大量编码,你可以在 Supported Encodings 页面中了解更多。引用其中的一段:
java.io.InputStreamReader
、java.io.OutputStreamWriter
、java.lang.String
类以及java.nio.charset
包中的类可以在Unicode和其他多种字符编码之间进行转换。支持的编码因Java SE 8的不同实现而异。对于java.nio.charset.Charset
的类描述列出了任何Java SE 8实现都需要支持的编码。JDK 8适用于所有平台(Solaris、Linux和Microsoft Windows),JRE 8适用于Solaris和Linux支持本页显示的所有编码。 Microsoft Windows的JRE 8可以安装为完整的国际版或欧洲语言版本。[...]
页面的其余部分包括一个广泛的编码名称和同义词表,这正是OP多年前所追求的...