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

2022-04-15 0 372

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<0x80) 

b1 = c>>0 & 0x7F | 0x00 

b2 = null 

b3 = null 

b4 = null 

else if (c<0x0800) 

b1 = c>>6 & 0x1F | 0xC0 

b2 = c>>0 & 0x3F | 0x80 

b3 = null 

b4 = null 

else if (c<0x010000) 

b1 = c>>12 & 0x0F | 0xE0 

b2 = c>>6 & 0x3F | 0x80 

b3 = c>>0 & 0x3F | 0x80 

b4 = null 

else if (c<0x110000) 

b1 = 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的缺点是在处理查找、搜索等问题时,好像算法上比较复杂,效率不高(记忆中)。

免责声明:
1、本网站所有发布的源码、软件和资料均为收集各大资源网站整理而来;仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 不得使用于非法商业用途,不得违反国家法律。否则后果自负!

2、本站信息来自网络,版权争议与本站无关。一切关于该资源商业行为与www.niceym.com无关。
如果您喜欢该程序,请支持正版源码、软件,购买注册,得到更好的正版服务。
如有侵犯你版权的,请邮件与我们联系处理(邮箱:skknet@qq.com),本站将立即改正。

NICE源码网 CSS/HTML utf8和unicode编码究竟是什么关系?有何区别? https://www.niceym.com/14472.html