我对Charset.forName(String charsetName)有疑问。有没有我可以参考的charsetNames列表?例如,对于UTF-8,我们使用“utf8”作为charsetName。 WINDOWS-1252,GB18030等怎么样?
答案 0 :(得分:5)
Charset Description US-ASCII Seven-bit ASCII, a.k.a. ISO646-US, a.k.a. the Basic Latin block of the Unicode character set ISO-8859-1 ISO Latin Alphabet No. 1, a.k.a. ISO-LATIN-1 UTF-8 Eight-bit UCS Transformation Format UTF-16BE Sixteen-bit UCS Transformation Format, big-endian byte order UTF-16LE Sixteen-bit UCS Transformation Format, little-endian byte order UTF-16 Sixteen-bit UCS Transformation Format, byte order identified by an optional byte-order mark
参考:http://docs.oracle.com/javase/7/docs/api/java/nio/charset/Charset.html
答案 1 :(得分:2)
Java中的charset名称取决于平台,StandardCharsets类中只有6个常量。
要查看所有字符集,请查看IANA。检查首选MIME名称和别名列。
答案 2 :(得分:1)
要列出安装在JVM中的所有字符集,可以使用以下命令 代码段(Java 8 SE或更高版本):
SortedMap<String, Charset> map = Charset.availableCharsets();
map.keySet().stream().forEach(System.out::println);
在我的系统上,它列出了大约170个字符集。
答案 3 :(得分:0)
需要 java Charset库,以仅接受一些基本编码:ASCII,Latin-1(ISO-8859-1)和一些UTF变体,您可以在{ {3}}。对于任何实际用途而言,这都是一个毫无用处的清单,除非您的范围仅限于Latin-1。实际上,Java类可以处理大量的编码,您可以在this answer页面上阅读这些编码。引用:
2019-04-04 07:09:46 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
,java.io.InputStreamReader
,java.io.OutputStreamWriter
类以及java.lang.String
包中的类可以在Unicode和许多其他字符编码之间转换。 Java SE 8的不同实现之间支持的编码有所不同。java.nio.charset
的类描述列出了Java SE 8的任何实现都需要支持的编码。所有平台(Solaris,Linux和Microsoft Windows)的JDK 8以及Solaris和Linux的JRE 8支持本页上显示的所有编码。 Microsoft Windows的JRE 8可能会完整安装国际版本或欧洲语言版本。 [...]
Supported Encodings的其余部分由一个广泛的编码名称和同义词表组成,这就是OP历经多年的努力...