当前位置:  编程技术>WEB前端

utf8和unicode编码究竟是什么关系?有何区别?

    来源: 互联网  发布时间:2014-09-06

    本文导语:  UTF8 == Unicode Transformation Format -- 8 bit  是Unicode传送格式。即把Unicode文件转换成BYTE的传送流。  UTF8流的转换程序:  Input: unsigned integer c - the code point of the character to be encoded (输入一个unicode值)  Output: byte b1,...

UTF8 == Unicode Transformation Format -- 8 bit 
是Unicode传送格式。即把Unicode文件转换成BYTE的传送流。 

UTF8流的转换程序: 
Input: unsigned integer c - the code point of the character to be encoded (输入一个unicode值) 
Output: byte b1, b2,b3, b4 - the encoded sequence of bytes (输出四个BYTE值) 
Algorithm(算法): 
if (c>0 & 0x7F | 0x00 
b2 = null 
b3 = null 
b4 = null 
else if (c>6 & 0x1F | 0xC0 
b2 = c>>0 & 0x3F | 0x80 
b3 = null 
b4 = null 
else if (c>12 & 0x0F | 0xE0 
b2 = c>>6 & 0x3F | 0x80 
b3 = c>>0 & 0x3F | 0x80 
b4 = null 
else if (c>18 & 0x07 | 0xF0 
b2 = c>>12 & 0x3F | 0x80 
b3 = c>>6 & 0x3F | 0x80 
b4 = c>>0 & 0x3F | 0x80 
end if 
===================== 
unicode 是一种编码表格,例如,给一个汉字规定一个代码。类似 GB2312-1980, GB18030等,只不过字集不同。 
===================== 
一个unicode码可能转成长度为一个BYTE,或两个,三个,四个BYTE的UTF8码,取决于unicode码的值。英文unicode码因为值小于0x80,只要用一个BYTE的UTF8传送,比送unicode两个BYTEs快。 
UTF8是为传送unicode而想出来的“再编码”方法罢了。 
UTF8转unicode用我上面给的程序反算即可。

UTF8是现有ASCII系统转向Unicode系统的一个过渡解决方案。UTF8是保证 ASCII兼容性,再向大字符集方向扩展。这是Unicode推荐的方案。但是因 为解决问题的角度不同,对现有的中文系统不是好的解决方案。 一下连接提供了详细的 UTF8编码的初步知识 http://www.acnis.com/modules.php?name=ArticlE&file=article&sid=102 参考资料:http://www.acnis.com/modules.php?name=ArticlE&file=article&sid=102

什么是Unicode。Unicode的基本目标是统一所有的编码,即它包含所有的字符集。这样只要一个系统支持Unicode,那么,就能处理这些字符集。一般Unicode有两个字节。现在的windows操作系统都是支持Unicode的。 

什么是UTF8呢?UTF8是一种Unicode编码,即它的编码的字符集和Unicode是一致的。但编码的方式不一样。对于英文字符来讲,UTF8的编码和一般的一样,用到一个字节。但对于中文来讲,那么要用三个字节表示(记忆中是三个)。 

UTF8和Unicode的缺点是在处理查找、搜索等问题时,好像算法上比较复杂,效率不高(记忆中)。

    
 
 

您可能感兴趣的文章:

  • Oracle将字符编码从GBK转到UTF8,如何操作比较稳妥?
  • php 判断网页是否是utf8编码的方法
  • 运行java程序时出现 警告:编码 UTF8 的不可映射字符
  • utf8编码检测方法分享
  • 使用UTF8编码通过gsoap访问.Net Web Service依然不能正确显示中文
  • php编码转换 实现gbk编码转换为utf8
  • MySql修改数据库编码为UTF8避免造成乱码问题
  • 查看修改mysql编码方式让它支持中文(gbk或者utf8)
  • Mysql数据库编码问题 (修改数据库,表,字段编码为utf8)
  • php截取字符串之截取utf8或gbk编码的中英文字符串示例
  • php截取utf8或gbk编码中英文字符串
  • C#实现获取文本文件的编码的一个类(区分GB2312和UTF8)
  • php汉字转码 GBK->Unicode(UTF8)编码转换
  • php汉字转码 Unicode(UTF8)至GBK编码转换
  • php mysql中utf8编码汉字转换成拼音
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何实现mbcs转换unicode,unicode转换成utf8
  • Mysql中校对集utf8_unicode_ci与utf8_general_ci的区别说明
  • Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结
  • 怎样用printf()正常打印出utf8的中文? iis7站长之家
  • utf8到ucs2的转换问题!
  • 解析mysql修改为utf8后仍然有乱码的问题
  • gcc 提示 无法从gb2312 转换到utf8
  • utf8与UTF-8有什么区别
  • PHP的UTF8开发库 php-utf8
  • iconv从UTF8转到GB18030中文乱码问题
  • 本人初学Linux,请各位高手多多指点,utf8问题
  • asp+mysql+utf8 网页出现乱码问题的解决方法
  • mysql重装后出现乱码设置为utf8可解决
  • zh_CN.utf8和UTF-8区别,是否兼容?
  • gtk2不能显示中文,运行时错误:WARNING **: Invalid UTF8 string passed to pango_layout_set_text
  • php截取字符串(无乱码 utf8)
  • 怎样用printf()正常打印出utf8的中文?
  • mysql 字符串长度计算实现代码(gb2312+utf8)
  • 在linux下用vim写好代码a.c后,在xp里打开文件,变成乱码了。a.c这个文件为utf8格式的,我在linux里想把a.c转换成iso88592格式的。
  • Mysql以utf8存储gbk输出的实现方法提供
  • 行业电子商务 SmartB2B V3.1.1 UTF8
  • iconv,从UTF8到GBK(//IGNORE),失败!
  • 急~~求助!用C++编写utf8转换成GBK码
  • 请教下如何在C代码中实现UTF8格式的转化


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3