Bàn*_*Sơn 3 java encoding utf-8 character-encoding
我在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ô'.
谁有人形容这个?谢谢.(对不起我的英语不好)
正如Jon已经说过的那样,原因是你使用了不同的编码.在UTF-8编码中,字符é和ô每个字节编码为两个字节.
ISO-8859-1: H é l ô
bytes: 48 E9 6C F4
UTF-8 : H é l ô
bytes: 48 C3A9 6C C3B4
Run Code Online (Sandbox Code Playgroud)
错误字符串结果的示例以字节为单位,如下所示
UTF-8 bytes interpreted as ISO-8859-1
H à © l à ´
48 C3 A9 6C C3 B4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4713 次 |
| 最近记录: |