UTF8编码问题?

ab1*_*b11 2 java utf-8

我正在调用一个错误的服务,告诉我下面的字符串存在编码问题:

UNIVERSAL®

据我所知,这个String是"utf8"编码的.这是对utf8编码的正确理解吗?如果是这样,这是否表明我应该删除utf8编码?如果是这样,有关如何在Java中对utf8字符串进行解码的任何建议?

或者我错了,上面的字符串不是utf8编码的?若然,有任何建议如何编码吗?

Kev*_*don 5

Java如何存储字符串与它在消息中的编码方式不同.您可以尝试以下方式:

String s = "Universal®";
byte[] encoded = s.getBytes(Charset.forName("UTF-8"));
Run Code Online (Sandbox Code Playgroud)

你必须抓住它UnsupportedCharsetException,但UTF-8是一个标准的可用字符集.

或者您可能需要在发送API中设置编码,例如在HTTP中Content-Type: text/plain; charset=UTF-8.

  • 对于Java 7+,您可以使用`StandardCharsets.UTF_8`而不是`Charset.forName("UTF-8")` (5认同)