GBK GB2312 utf-8 编码测试

本文通过实例说明了UTF-8编码与ISO-8859-1编码之间的转换原理及乱码产生的原因。重点介绍了中文在不同编码方式下如何被表示,并解释了为何某些情况下中文会显示为问号或者乱码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很好的参考:[url]http://sunfish.blog.51cto.com/417500/142577/[/url]

编码解码分析(仅是乱码的一种情况):
中文的utf-8编码是 每个中文用三个字节来编码,比如下面例子生成6个字节:
c1:
"亢磊".getBytes("utf-8")
(byte[]) [-28, -70, -94, -25, -93, -118]


c2:
"亢磊".getBytes("iso-8859-1")//63 对应的iso-8859-1表查询是'?',(为什么有时候我们的中文传递过程中变成? ?)
(byte[]) [63, 63]

c1,c2是编码过程,再把c1,c2的字节序列按照iso-8859-1解码,我们可以从[url]这里http://en.wikipedia.org/wiki/ISO_8859-1[/url]查结果
c3:
new String("亢磊".getBytes("utf-8"),"iso-8859-1")//每个字节对应iso-8859-1对照表中的一个字符,所以结果为6个字符。(经常看到的乱码?)
(java.lang.String) 亢ç£


结果:“[size=xx-large]亢ç£[/size]”是六个字节,byte数值-十六进制-iso-8859-1符号对应关系分别是:
byte数值-十六进制-iso-8859-1符号
[table]
|byte数值|十六进制|iso-8859-1符号|iso-8859-1|
|-28|e4|[size=xx-large]ä[/size]|[img]http://dl.iteye.com/upload/picture/pic/61523/1c65b123-fc14-3f4e-86b0-3d4b99002813.png[/img]|
|-70|ba|[size=xx-large]º[/size]|[img]http://dl.iteye.com/upload/picture/pic/61521/ba27c49b-a889-335e-80a3-61bbf1423496.png[/img]|
|-94|a2|[size=xx-large]¢[/size]|[img]http://dl.iteye.com/upload/picture/pic/61527/8b034c28-26c3-3353-bb81-d5a1613c1762.png[/img]|
|-25|e7|[size=xx-large]ç[/size]|[img]http://dl.iteye.com/upload/picture/pic/61525/6aa4dc72-85a7-3dfd-8347-ad698eecd0f8.png[/img]|
|-93|a3|[size=xx-large]£[/size]|[img]http://dl.iteye.com/upload/picture/pic/61519/50ceb9d6-d809-3059-9069-6d863f86d205.png[/img]|
|-118|8a|[size=xx-large][/size]||
[/table]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值