我们在浏览网站的时候经常会看到一些类似乱码的字符串。这些是如何产生的呢,又该怎么解决。
基本你所看到的网页都是图上这个流程,那么乱码是怎么产生的呢?
图中‘’网页‘’比喻成一个中国人,服务器比喻成一个聊天软件,浏览器比喻成一个外国人,那么就是你和一个外国人在对话,你说的是中文,外国人说的英文,那么问题就产生了,你们都听不懂对方说的是什么。怎么解决这个问题呢?
解决的方式就是你也说英语那对方就明白了,或者对方学汉语这样这样对方也能明白。
怎么能让网页和浏览器使用相同的语言呢。这里我们就少几种编码方式
- ASCII
全称美国标准信息交换代码(American Standard Code for Information Interchange)的缩写, 为美国英语通信所设计。它由128个字符组成,包括大小写字母、数字0-9、标点符号、非打印字符(换行符、制表符等4个)以及控制字符(退格、响铃等)组成,每个字符占7位(1字节是8位)。就是只有英文、数字和标点符号,如果有中文就会出现乱码
- ISOLatin-1
可以认为ASCII是美国发明针对英语设计的知道就行了,用不上
- Unicode
后来计算机不断发展扩展到亚洲非洲,如何用计算机使用的二进制表示这些语言又成了问题。ISOLatin-1的8位字符集只能表示256个字符,而仅汉语就有80000以上个字符。如何把地球上绝大多数语言用一种编码方式表示出来呢? 于是发明了UNICODE编码,只用2个字节(16位)就可以编码地球上几乎所有地区的文字。终于有中文了
- UTF-8
utf-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。普遍都用这个
- GBK
中国制定一套自己的规则,于是用2个字节来表示一个汉字,总共可以覆盖2万多个文字。 保留UTF-8同样的方式使用一个字节来表示英文。推荐在国内使用
使网页和浏览器使用相同的语言,我们不用控制浏览器的编码方式,因为每个浏览器都有自动检测页面编码的功能
我们只要在自己的网页上使用meta标签声明网页的编码方式就可以避免页面乱码的问题
<meta charset="utf-8">
本文章著作权归 杜宪 和饥人谷(QQ 群: 222459918) 所有,转载须说明来源