utf8和unicode编码究竟是什么关系?有何区别?_基础教程

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

时间: 2024-09-20 05:39:43

utf8和unicode编码究竟是什么关系?有何区别?_基础教程的相关文章

第3天:定义语言编码_基础教程

第三步是定义你的语言编码,类似这样: <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 为了被浏览器正确解释和通过W3C代码校验,所有的XHTML文档都必须声明它们所使用的编码语言,我们一般使用gb2312(简体中文),制作多国语言页面也有可能用Unicode.ISO-8859-1等,根据你的需要定义. 通常这样定义就可以了.但是要补充说明的是,XML文档并不是这

html页面head区域的编码书写规范_基础教程

今天我们简单的介绍一下head区域主要放置了内容.这里就不强调css和javascript了,这两者是大家所熟知的. head区一般必须加入的标识有:  公司版权注释 <!--- the site is designed by MrJin 03/2001 --->   网页显示字符集 简体中文: <meta http-equiv="content-type" content="text/html; charset=gb2312"> 繁体中文:

资料:Unicode 汉字内码对应表第1/5页_基础教程

啊:21834 阿:38463 埃:22467 挨:25384 哎:21710 唉:21769 哀:21696 皑:30353 癌:30284 蔼:34108 矮:30702 艾:33406 碍:30861 爱:29233 隘:38552 鞍:38797 氨:27688 安:23433 俺:20474 按:25353 暗:26263 岸:23736 胺:33018 案:26696 肮:32942 昂:26114 盎:30414 凹:20985 敖:25942 熬:29100 翱:32753 袄:

IIS5 UNICODE 编码漏洞的利用心得

iis|编码|心得 大家一定都知道那个风光了很久的IIS5 UNICODE 编码漏洞吧.没办法,第一篇教程不知道写什么好,随便先凑合着,就写一下这个漏洞的攻击心得吧. 1 首先我们来看看这个漏洞的原理. 在中文版的IIS4,和ISS5中,存在一个BUG,原因是UNICODE编码 存在BUG 在UNICODE 编码中,发现了一个奇怪的编码方式, 例如: %c1%hh %c0%hh (0x00〈= 0xhh 〈 0x40) IIS 把 "%c1%hh" 编码成(0xc1 -0xc0) *

php怎么把unicode编码转为utf-8编码

在前端开发中,为了让中文在不同的环境下都能很好的显示,一般是将中文转化为unicode格式,即u4f60,比如:"你好啊"的unicode编码为"u4f60u597du554a". JS里将中文转为unicode编码很简单. JS代码: function convert2Unicode(str) {     return str.replace(/[u0080-uffff]/g,     function($0) {         var tmp = $0.cha

lua中编码转换 utf16转utf8,unicode转utf8

问题描述 lua中编码转换 utf16转utf8,unicode转utf8 lua中怎么从utf16转到utf8 ? 从网上找到个js的实现方法,但是不知道参数是什么, function utf16ToUtf8(s){ if(!s){ return; } var i, code, ret = [], len = s.length; for(i = 0; i < len; i++){ code = s.charCodeAt(i); if(code > 0x0 && code &l

Unicode编码完全探究

一.文章来由 好久没有写博客了,最近博主再做一个比较大的项目,这个项目可能要延续到明年4月份左右,不过我还是尽量找时间写博客.说完题外话,关于这个题目选择,因为这是一个没有完全搞懂的问题,所以需要把它搞懂~~ 二.从ASCII码说起 1.ASCII的出现 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte).也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态

UTF-8 GBK UTF8 GB2312 之间的区别和关系介绍_相关技巧

UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强.UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示.如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包. GBK是国家标准GB2312基础上扩容后兼容GB2312的标准.GBK的文字编码是用双字节来表示的,即不论中.英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1.GBK包含全部中文字符,是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBD大. GBK

谈谈Unicode编码(简要解释UCS、UTF、BMP、BOM等名词)

这是一篇程序员写给程序员的趣味读物.所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级.整理这篇文章的动机是两个问题: 问题一: 使用Windows记事本的"另存为",可以在GBK.Unicode.Unicode big endian和UTF-8这几种编码方式间相互转换.同样是txt文件,Windows是怎样识别编码方式的呢? 我很早前就发现Unicode.Unicode big endian和UTF-8编码的txt文件的开头会多出几个字节,分别是F