网页乱码问题

来源:互联网 发布:java八大基础类型 编辑:程序博客网 时间:2024/05/06 12:24

网页乱码问题主要原因就一个:网页文件保存格式与解析格式不一致。


通常情况就是一个一ANSI格式保存的文件用UTF-8去解析,而想知道一个文件到底用了什么格式去保存,很简单,用记事本打开,另存为,在弹出框的“编码”一栏就可以看出原文件的保存格式了,只要把ANSI格式的文件用UTF-8去保存的话,那么用UTF-8 格式去解析自然就不会乱码了。当然,如果文件用ANSI格式保存,想文件中中文不会乱码,只要不用UTF-8去解析,而是用GB2312或者GBK去解析页面内容也是不会乱码的。说到底,乱码就是保存格式与解析格式不一致导致的,只要修改任意一方面使其一致,问题也就不存在了。


当然,这里需要特别注意的是文件保存格式的问题,有时候某些系统或者编辑软件都会默认文件保存格式为ANSI,(这里补充一点,在网上资料找的:“在保存文件到计算机硬盘的时候,文件保存的内容已经和本机采用的编码相关,采用了计算机上有的某种编码方式来存储。在简体中文系统中ANSI代表的就是GB2312,繁体似乎是GBK,而在日文操作系统下,ANSI 编码代表 JIS 编码”,也就是说如果在保存文件时没有明确选择或设定某种编码格式保存的话,文件保存就会按系统所在系统选择相应ANSI格式进行保存),这就是为什么会出现在文件内明明写了用UTF-8去解析,而文件中文还是出现乱码的问题,只要注意文件保存格式选择设定好,那么也就不怕了。



备注:

ANSI  即采用 2 个字节来代表一个字符的各种语言字体编码方式,称为 ANSI 编码(当然可以显示中文,中文显示不了注意是解析方式没对,而不是ANSI不能显示中文)


UTF-8 即为了双字节的Unicode(即UTF-16编码)能够在现存的处理单字节的系统上正确传输而出现的编码方式。


这里ANSI其实可以保存和显示任何语言字符的内容(因为用了两个字节保存数据,足够大),主要用对对应的解析方式,像中文简体用GB2312解析,中文繁体用GBK解析,等等,但就是因为每个国家或地区都用自己的解析方式,文件在传送上就很不方便,所以才出现UTF-16同一标准,而UTF-8 即为了双字节的Unicode(即UTF-16编码)能够在现存的处理单字节的系统上正确传输而出现的编码方式,同一后无论哪国字符,如果用UTF-8格式保存,那么用UTF-8一种解析方法解析即可,方便了文件的广域传播。