中文乱码问题产生的由来
在计算机中,只有二进制的数据,不管数据是在内存中,还是在外部设备上。
对于我们所看到的字符,也是以二进制数据的形式存在的。不同的字符对应的
二进制数的规则,就是字符的编码。字符编码的集合称为字符集。
常用的字符集
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应用程序和数据库等部分,每一部分的都有可能使用不
同的字符集,从而导致数据在各种字符之间转换时,出现了乱码问题。
分享到:
相关推荐
中文乱码问题分析中文乱码问题分析中文乱码问题分析中文乱码问题分析中文乱码问题分析中文乱码问题分析
解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码...
中文乱码问题整理总结 通过平时开发实践,总结的乱码问题.
Ajax中文乱码问题解决方案
java中最头疼的可能就是中文乱码的问题,这个可以彻底解决中文乱码的问题
myeclipse中文乱码问题 myeclipse中文乱码问题myeclipse中文乱码问题myeclipse中文乱码问题myeclipse中文乱码问题myeclipse中文乱码问题myeclipse中文乱码问题
java中文乱码问题详解--- java中文乱码问题详
51单片机串口发送汉字显示乱码问题
linux下中文乱码问题,全面的讲解了linux中文乱码的解决方法,
本资源参考网上原版为存取英文字符的ini操作,未考虑中文乱码问题。而网上另外也有资料如何处理中文编码,例如转码为utf-8,存能解决乱码,取又出现问题。本资源我重新整理,用unicode完美解决中文乱码问题。用法: ...
Java关于中文乱码问题的多种解决方法,中文乱码过滤器
描述开发工具使用过程中,令人头痛的tera term中文乱码问题,如何快速定位解决
qt乱码问题解决
今天突然提及的操作之php的JPgraph横坐标中文乱码问题,迫不及待 测试了一下, 尝试了几遍,都是乱码,好不容易没有乱码了,却报错。 解决JPgraph的横坐标显示,中文乱码问题,横坐标数组资源。
JSP中文乱码的产生原因及解决方案,比较全面的解决中文乱码问题
soapUI输入中文显示为乱码 响应报文中文乱码问题解决方法
sqlite3 for delphi 自己修改的版本 解决中文乱码问题
解决Lua文件反编译后汉字乱码问题。开发环境vs2013,语言c#
TIdTCPClient中文乱码问题 我在进行indy10.5.7这个版本进行idTCPClient及idTCPServer进行编程时同样汉字收发时会产生乱码,我在单元的里引用了 HTTPApp 单元, 在发的时候这样写IdTCPClient.IOHandler.WriteLn...
主要为大家分享了介绍了java中文乱码之解决URL中文乱码问题的方法,感兴趣的小伙伴们可以参考一下