ANSI----->
GB2312------>
GBK Unicode---->utf-8
ASCII:是编码,它映射了127个字符,因此7位(bit)二进制数足够用来表示127个字符。
Unicode:为每个字符提供了唯一的特定数值,它世界上使用的所有字符都列出来,并给每一个字符一个唯一特定数值。
通常Unicode编码指的是utf-16,如在文本中以unicode存储的话则是指UTF-16。在vc环境中就是wchar,宽字节。
Utf-8 则是unicode的中的一种编码方式。
GB2312: 或
GB2312-80是一个简体中文字符集的中国国家标准,全称为《信息交换用汉字编码字符集--基本集》,由中国国家标准总局发布,1981年5月1日实施。
GB2312编码通行于大陆,几乎所有的中文系统和国际化的软件都支持
GB2312。 是一种编码字符集。
GBK 理解为则是
GB2312 的扩展集。gbk和gb2312不存在转换
BIG5 台湾人用的中文字符集合。
当unicode->
gb2312 or
gb2312->unicode 时,存在着
转换函数。
当utf-8->
gb2312 or
gb2312->utf-8 也存在
转换。
当utf-8->unicode or unicode->utf-8 也存在
转换。
当然也存在
gbk 到 unicode 和 unicode 到
gbk的
转换干脆列个表吧:
|
unicode |
utf-8
|
gb2312
|
big5
|
unicode
|
-
|
v
|
v
|
v
|
utf-8
|
v
|
-
|
v
|
v
|
gb2312
|
v
|
v
|
-
|
v
|
big5
|
v
|
v
|
v
|
-
|
其中
转换依据各自的编码原理,当然各种语言也各自的方法,如在vc中,当
转换,一般就是采用的
WideCharToMultiByte
or MultiByteToWideChar方式倒来倒去。
而在asp中则一般是utf-8到gb2312or
gb2312 到utf-8,
下面摘抄一段:
'
gb2312 ->utf-8
转换Function chinese2unicode(Str)
dim i
dim Str_one
dim Str_unicode
for i=1 to len(Str)
Str_one=Mid(Str,i,1)
Str_unicode=Str_unicode&chr(38)
Str_unicode=Str_unicode&chr(35)
Str_unicode=Str_unicode&chr(120)
Str_unicode=Str_unicode& Hex(ascw(Str_one))
Str_unicode=Str_unicode&chr(59)
next
Response.Write Str_unicode
end function
至于为啥细节,则需要了解它们的编码规则,这里不用讨论了,那些
转换函数,在各个语言中都有人总结出来,拿来直接用即可。
那些编码规范,其实说来,大致了解就可以了。