utf-8 GBK gb2312字符编码详解

时间:2023-01-04 19:53:08
 

UTF-8:Unicode Transformation Format-8bit,允许含BOM,但通常不含BOM。UTF-8是UTF-8编码是一种目前广泛应用于网页的编码,它其实是一种Unicode编码,即致力于把全球所有语言纳入一个统一的编码。它是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强,UTF-8已经把几种重要的亚洲语言纳入,包括简繁中文和日韩文字。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包。

“UTF-8”是标准写法。在Windows下不区分大小写,可以写成“utf-8”,也可以把中间“-”省略,写成“UTF8”。一般程序可以识别,但在网页文档中需要加“-”。编写代码时,建议使用标准写法:大写“UTF-8”。

在MySQL的命令模式下不能加“-”,只能使用“utf8”,比如命令“set names utf8”才有效;而在PHP中header要加上“-”,因网页语言不认识“utf8”。
  PHP的header:
  <?php header('Content-Type: text/html; charset=UTF-8'); ?> //注意写法:Content-Type用冒号,charset是等号。
 
  静态网页文件header中meta:
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

说明:IE的默认编码方式gb2312,其他浏览器“FireFox”、“Chrome”、“Opera”等则默认使用UTF-8编码,浏览器先检测文件中规定的编码,无法识别则使用默认编码方式进行页面解析。

【总结  】:只有在MySQL中可以使用“utf-8”的别名“utf8”,在其他地方一律使用大写“UTF-8”。即在命令“mysql_query(set names utf8)”外一律用大写“UTF-8”。


对于gb2312编码,当文章/网页中包含繁体中文、日文、韩文时,这些内容可能无法被正确编码。

GBK是国家标准GB2312基础上扩容后兼容GB2312的标准。GBK的文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1。GBK包含全部中文字符,是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBD大。

GBK、GB2312等与UTF8之间都必须通过Unicode编码才能相互转换:
GBK、GB2312--Unicode--UTF8
UTF8--Unicode--GBK、GB2312

对于一个网站、论坛来说,如果英文字符较多,则建议使用UTF-8节省空间。不过现在很多论坛的插件一般只支持GBK。
个编码的区别详细解释
简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那三种编码是一兼容的,同一个汉字,那三个码值是完全不一样的.如"汉"的uncode值与gbk就是不一样的,假设uncode为a040,gbk为b030,而uft-8码,就是把那个值表现的形式.utf-8码完全只针对uncode来组织的,如果GBK要转UTF-8必须先转uncode码,再转utf-8就OK了.

 

详细链接请参考http://www.divcss5.com/html/h53.html