【发布时间】:2016-02-14 20:52:43
【问题描述】:
我阅读了一些关于 Java 中 String.getBytes(Charset) 方法的文档。
用于将String转换为字节数组(字节类型可以取值-2^7到2^7-1)。
据我所知,UTF-8 字符集中的每个字符可以使用 1-4 个字节。如果 UTF-8 字符集中的字符编码大于 2^7-1 会怎样?
我试过了
String s="Hélô"
然后我得到了这样的'HélÃ'':
String sr=new String(s.getBytes("UTF-8"),Charset.forName("UTF-8"));
我希望它返回原始值“Hélô”。
谁能描述一下?谢谢。 (对不起我的英语)
【问题讨论】:
-
应该没问题。您确定原始字符串是合适的吗?如果你有 UTF-8 源代码但编译为 ISO-8859-1,你会得到那个结果。我建议您制作一个简短但完整的程序来演示问题,包括证明结果不等于源字符串。
标签: java encoding utf-8 character-encoding