“救急!乱码”,经常有用户在论坛里发这样的贴子。“乱码”问题把很多用户搞了,其实如果是字符乱码,多是字符集设置的问题。ShopEx是用UTF8编码格式的,由于浏览器或者是服务器底层环境配置不同,所以有时会出现所谓的“乱码”。那么什么是字符集呢?
电脑中使用并存储的永远是二进制码,而不是方块字,也不是英文字母。二进制码每8位构成一个字节,代表了一个0-255的数字。那么这个数字代表什么呢?如果是字母的话,比如说65代表a,这个规则就是一个字符集,著名的是ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)。
如果换个其他国家的,比如说德文,那么65就代表另外的东西了,那就是另外的字符集。
由于亚洲的文字无法用256个来表示,所以需要用双字节来表示,比如GB2312是一个字符集,同理,日文也有日文的字符集。
同样的网页,用不同的字符集来显示,会出现不同的样子,正因为同样的二进制存储的信息,字符集不同,显示的内容也就不同了。网页中有“meta http-equiv="Content-Type" content="text/html; charset=gb2312"字样,这就是对字符集的指定,所以网页才能正确显示文字。
目前绝大多数基于WEB的程序都使用UTF8(Unicode Transformation Format-8)这种编码格式。严格意义上说,UTF8并不算是一种电脑编码,而是一种储存和传送的格式。UTF8以8bits即1Bytes为编码的最基本单位,当然也可以有基于16bits和32bits的形式,分别称为UTF16和UTF32,但目前用得不多。
UTF8的好处是:
数据表现:网页可以显示任何语言和文字,只要你的操作系统支持unicode,还有相应的字体,Linux下系统编码为utf8的话,可以解决很多无谓的中文问题。
数据交换:无需那些gb2312和big5之间的转换程序了。
UTF8当然也有其坏处:用的中文网站还不多,不利于数据交流,但使用UTF8的网站正在飞速增长中;汉字为三个字符,有时varchar不大够用。
不过总体来说,用UTF8还是利大于弊。
