ISO-8859-1疑问
来源:互联网 发布:sql identity off 编辑:程序博客网 时间:2024/05/22 18:23
ISO 8859-1
又称Latin-1或“西欧语言”,是国际标准化组织内ISO/IEC 8859的第一个8位字符集。它以ASCII为基础,在空置的0xA0-0xFF的范围内,加入96个字母及符号,藉以供使用附加符号的拉丁字母语言使用。
ISO-8859-1的组成:
- 0-127 ASCII
- 128-159 没有定义
- 160-255 自定义
ASCII编码表
ISO-8859-1编码表
那么问题来了:
package cn.bjut.test;import javax.xml.bind.DatatypeConverter;import java.io.UnsupportedEncodingException;public class ChangeCharset { public static void main(String[] args) throws UnsupportedEncodingException { String str = "中国"; String result; System.out.println(DatatypeConverter.printHexBinary(str.getBytes("UTF-8"))); String iso8859 = new String(str.getBytes("UTF-8"), "ISO-8859-1"); System.out.println(iso8859); System.out.println(DatatypeConverter.printHexBinary(iso8859.getBytes("ISO-8859-1"))); result = new String(iso8859.getBytes("ISO-8859-1"), "UTF-8"); System.out.println(result); }}
中国对应的UTF-8
编码为:E4 B8 AD E5 9B BD
当我们对它进行ISO-8859-1
解码,得到:ä ¸ 软连接符 å › ½
解码流程:
E4:对应的十进制为228,查表得到 ä
B8:对应的十进制为184,查表得到 ¸
AD:对应的十进制为173,查表得到 软连接符
E5:对应的十进制为229,查表得到 å
9B:对应的十进制为155,查表得到 没有对应的编码
BD:对应的十进制为189,查表得到 ½
当我们使用ISO-8859-1
字符集编码回去的时候,位于0-127以及160-255的字符都存在一一对应关系,而位于128-159内的字符如何进行编码呢?
debug下
可见9B
被解码为\U009B
。
阅读全文
0 0
- ISO-8859-1疑问
- ISO-8859-1 编码
- ISO 8859-1
- 关于ISO-8859-1编码
- unicode和ISO 8859-1
- ISO-8859-1乱码恢复
- ISO-8859-1 To UTF8
- Tomcat的ISO-8859-1
- HTML ISO-8859-1 参考手册
- HTML ISO-8859-1 参考手册
- myeclipse 遇到'ISO-8859-1'编码问题
- myeclipse 中的'ISO-8859-1'编码问题
- UTF-8和iso-8859-1
- ErlIDE的ISO-8859-1编码问题
- [编码]ISO-8859-1
- eclipse: ISO-8859-1 不能保存
- C# 转换 ISO-8859-1 编码
- ISO-8859-1 Character Set(XSLT Characters)
- 探究HashMap的实现原理
- Suse防火墙设置
- springmvc传值方式
- DeepMind提出快速调参新算法PBT,适用GAN训练(附论文)
- 测试计划
- ISO-8859-1疑问
- 开始Android
- pymongo
- AJAX防重复提交的办法总结
- Spark RDD coalesce()方法和repartition()方法
- 微服务和SOA
- leetcode_292. Nim Game ? 待解决
- 回顾c语言中声明和定义的区别
- 工作总结第四天