kenlistian

勤学多思

  IT博客 :: 首页 :: 新随笔 ::  :: 聚合  :: 管理 ::
  412 随笔 :: 0 文章 :: 23 评论 :: 0 Trackbacks
  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  

至于为啥细节,则需要了解它们的编码规则,这里不用讨论了,那些转换函数,在各个语言中都有人总结出来,拿来直接用即可。
那些编码规范,其实说来,大致了解就可以了。


 









posted on 2008-02-27 12:04 kenlistian 阅读(1416) 评论(0)  编辑 收藏 引用 所属分类: AI
只有注册用户登录后才能发表评论。