36

一些 httpclient 要求我提供一个字符串 charsetµ。

我想知道是否给它 UTF8 或 utf8 或 UTF-8?

特别是在调用 Charset.forName(enc) 时

4

5 回答 5

24

更容易使用StandardCharsets.UTF_8,因为它省去了处理 UnsupportedEncodingExceptions 的麻烦

于 2016-10-12T16:27:57.100 回答
21

UTF-8是标准的,大多数人都使用它。

以下是 Java 中使用的字符集列表:

http://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html

注意
如果 charset factory/singleton 类可以Enum作为参数,以及StringEnumis,IMO,总是一个更安全和更好的选择。

于 2012-07-15T10:40:43.403 回答
0
Charset charset = Charset.forName("cp1254"); 

这对我来说是 utf-8 解决方案。你可以使用它。

于 2022-01-28T07:01:18.767 回答
0

仅供参考,对于 Java 7/tomcat 8.5,我正在使用:-Dfile.encoding=UTF-8 -Dclient.encoding.override=UTF-8

但是对于 Java 8/tomcat 8.5,我得到了: java.nio.charset.IllegalCharsetNameException: UTF-8

所以我改成了UTF8

于 2018-03-23T13:12:15.097 回答
0

标准名称是“UTF-8”。源代码(我使用 jdk1.8.0_20)显示更多细节:

UTF_8 extends Unicode {
    public UTF_8() {
        super("UTF-8", StandardCharsets.aliases_UTF_8); // show other aliases
        // static final String[] aliases_UTF_8 = new String[]{"UTF8", "unicode-1-1-utf-8"};
    }

    public String historicalName() {
        // return old name of UTF-8
        return "UTF8";
    }
于 2019-07-16T07:23:50.123 回答