网站内中文出现乱码的五个原因

2016-09-19 16:57:16 11311

下面列出网页出现乱码的几种原因和解决办法:

 

1、网站头部设定的编码和网页本身的编码不一致导致的,html网页头部代码:<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />是告诉浏览器该用什么编码来读取网页的内容,然后浏览器就会启用相应的解码来程序内容,同时,网站本身还存在一个编码的机制,中国人一般使用gbk、gb2312、utf-8编码,如果网站制作者将网页文件存储为了gbk格式,然后在网页头部却设置了utf-8的格式,那么浏览器在读取网页的时候就会将中文或其他非英文和数字的字符解析成乱码;

如果是这种编码错误,解决办法很简单,将解码方式和文件存储的编码修改成一致即可,浏览者在遇到此类情况,可以在网页空白处右键-编码种选择多种编码方式试试,就可以看到乱码的文字了。

 

2、不合理的字符串截取造成个别字符乱码,在gbk和gb2312编码下,中文是占用两个字节,而在utf-8编码模式下,中文字符占用三个字节,而英文和数字都是占用一个字节,如果用英文的一些截取方式去截取中文字符的话,就可能出现将一个中文截断的现象,网页就会出现中文乱码,而gbk和utf-8的中文截取手段也不一样。

这种情况的解决办法就是规范截取字符串的函数,因地制宜。

 

3、数据库编码问题导致,这种情况在mysql中经常出现,因为mysql等一些数据库支持存储各种编码的字符串,并且也有编码的区分, 读取数据库的方式这个很关键,必须和网页的头部设定和存储编码一致,如果不一致就会出现乱码。

 

4、AJAX传递中文编码导致的,AJAX在传递中文数据的时候只支持UTF-8编码的中文,所以如果尝试用其他编码方式传递的话就会出现乱码,解决办法是在传递中文数据前就将中文数据转码成utf-8。

 

5、网站本身中毒导致。

 

上面五种原因基本囊括了网站出现乱码的可能性,如有不足之处还请指正!


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: