随笔 - 6  文章 - 129  trackbacks - 0
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(14)

随笔档案(6)

文章分类(467)

文章档案(423)

相册

收藏夹(18)

JAVA

搜索

  •  

积分与排名

  • 积分 - 822292
  • 排名 - 49

最新评论

阅读排行榜

评论排行榜

中文乱码问题产生的由来

 在计算机中,只有二进制的数据,不管数据是在内存中,还是在外部设备上。
对于我们所看到的字符,也是以二进制数据的形式存在的。不同的字符对应的
二进制数的规则,就是字符的编码。字符编码的集合称为字符集。

常用的字符集
1 ASCII
2 ISO8859-1
3 GB2312和GBK

  每个国家(或者区域)都规定了计算机信息交换用的字符编码集,这就造成了
交流上的困难。想象一下,你发送一封中文邮件给一位远在西班牙的朋友,当邮件
通过网络发送出去的时候,你所书写的中文字符会按照本地的字符集GBK转换成二进制
编码数据,然后发送出去。当你的朋友接收以邮件(二进制数据)后,查看信件时,会
按照他所用的系统的字符集,将二进制数据解码为字符,然而由于两种字符集之间编码
规则的不同,导致转换出现乱码。这是因为,在不同的字符集之间,同样的数字可能对
应了不同的符号,也可能在另一种字符集中,该数字没也对应的符号。
  为解决上述问题,统一全世界的字符编码,由Unicode协会制定并发布了Unicode编码。
4 Unicode
5 UTF-8

对乱码产生过程的分析

  字符数据在各种不同的字符集之间转换时,就有可能会出现乱码。
  xml处理器在没有被预先通知的情况下会默认文档数据为UTF-8格式。
这样在你书写xml文档时,就存在了UTF-8字符集和本地字符进行转换的过程。
当向xml文档中写入数据的时候,需要将本地字符集编码的数据转换为UTF-8
,而在输出字符数据的时候,则需要将UTF-8编码转换为本地字符集编码。
从上述的过程来看,写入和输出的过程是可逆的。理应不会出现中文乱码问题
然而,实际应用的情形,比上述的过程要复杂的多。在WEB应用中,通过都包括
浏览器、WEB服务器、WEB应用程序和数据库等部分,每一部分的都有可能使用不
同的字符集,从而导致数据在各种字符之间转换时,出现了乱码问题。



posted on 2007-09-20 21:46 Ke 阅读(4418) 评论(0)  编辑  收藏 所属分类: encoding

只有注册用户登录后才能发表评论。


网站导航: