`
dingjun1
  • 浏览: 208719 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

utf8的编码原理

阅读更多
大概意思:
在UTF8中,字符使用1到6个八位序列编码。
只有一个八位序列的字符,一个高位置为0,剩下的7位用于字符值的编码(能表示ASCII)
一N个八位的序列(N>1),开头的八位中高位有n位置为1,相邻的一位置为0,这个八位中
剩下的位用于字符值的编码,接着的N-1个八位序列中都在最高位置为1,相邻位置为0,每一个八位序列剩下的6
位包含字符值的编码位。

只有一个八位序列,则有7位编码位,表示值为127以内的字符
两个八位序列,第一个八位剩下5位,第二个序列剩下6位,共11位可以表示128到2048-1以内的字符
三个八位序列,第一个八位剩下4位,第二个序列剩下6位,第三个序列剩下6位,共16位,可以表示2048到65536-1以内的字符。
以此类推。

最大6个八位序列,用于字符的编码值有1+5*6=31位,才可以表示2147483648-1以内的字符。
===================================================================================
摘取:RFC2044 - UTF-8
In UTF-8, characters are encoded using sequences of 1 to 6 octets.
   The only octet of a "sequence" of one has the higher-order bit set to
   0, the remaining 7 bits being used to encode the character value. In
   a sequence of n octets, n>1, the initial octet has the n higher-order
   bits set to 1, followed by a bit set to 0.  The remaining bit(s) of
   that octet contain bits from the value of the character to be
   encoded.  The following octet(s) all have the higher-order bit set to
   1 and the following bit set to 0, leaving 6 bits in each to contain
   bits from the character to be encoded.

   The table below summarizes the format of these different octet types.
   The letter x indicates bits available for encoding bits of the UCS-4
   character value.

   UCS-4 range (hex.)           UTF-8 octet sequence (binary)
   0000 0000-0000 007F   0xxxxxxx
   0000 0080-0000 07FF   110xxxxx 10xxxxxx
   0000 0800-0000 FFFF   1110xxxx 10xxxxxx 10xxxxxx

   0001 0000-001F FFFF   11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
   0020 0000-03FF FFFF   111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
   0400 0000-7FFF FFFF   1111110x 10xxxxxx ... 10xxxxxx


1.《Unicode详解》:http://tech.idv2.com/2008/02/21/unicode-intro/
         2.《Unicode、UCS和UTF编码简介》:http://hi.baidu.com/%D0%DB%CF%D8/blog/item/f3e0d7f221c09c12b17ec512.html
         3.《GB18030编码研究以及GBK、GB18030与Unicode的映射》:http://blog.csdn.net/fmddlmyy/archive/2008/04/13/2288312.aspx
         4.《汉字编码问题》:http://www.css8.cn/css8_document/gb2312.htm
         5.《Java:Unicode简介》:http://tech.it168.com/oldarticle/2006-11-09/200611092313338.shtml
         6.《字符,字节和编码》:http://www.regexlab.com/zh/encoding.htm
         7.《ISO 8859-1》:http://baike.baidu.com/view/758577.htm
         8.《Base64》:http://zh.wikipedia.org/wiki/Base64

分享到:
评论

相关推荐

    深入UTF8字符编码.doc

    UTF8字符编码:windows编码、文本工具的字符编码、Java编译器的字符编码、MySql的UTF8编码

    VB(Visual Basic) UTF8 字符编码

    VB(Visual Basic) UTF8 字符编码 常常使用 VB(Visual Basic) 程序 Post到其他程序时有关中文正总老是乱码、怎么也不好解决、 这里我们做了一小方法、直接先将我们要发送的中文字符转换为UTF8字符集的编码然后在发送...

    C#程序对UTF8,BASE64编码的工作原理程序化实现

    现今网络应用已经很普及,而对网络方面的编程少不了要用到不同的编码,本程序只是简单的对UTF8及BASE64编码进行简单的剖析,仅供学习参考,若您有更优化的处理办法希望能共同研究一下。程序是用C#编写。我曾用过其它...

    编码批量转换工具

    utf8 转gb2312编码转换举例,编码转换软件工作原理 比如要把D:\web目录下的php文件和html文件由utf8转gb2312编码, 转换时排除test开头的文件 1 选择文本编码转换的源目录 比如选择D:\web 2 选择文件编码转换的目标...

    UTF-8编码和GBK编码互转,一个头文件搞定!跨平台不使用第三方库

    原理是将UTF-8编码的汉字、字母、符号、数字等转换成unicode编码,而unicode和GBK编码存在对应关系,所以只需要将对应的unicode编码的数据对应转换码表(查表)即可得到GBK编码的内容,实现UTF-8和GBK编码互转。...

    C# 制作UTF8 到 GB2312的代码

    一个简单的转换工具,对某一个目录中的utf-8文件进行转换;您也可以利用这个原理进行其他编码的转换,例如utf-8到unicode. 注意:使用的是C#自带的字符集转换功能.本人不了解utf-8的等编码原理.

    批量字符编码转换工具 20070709

    utf8 转gb2312编码转换举例,编码转换软件工作原理 比如要把D:\web目录下的php文件和html文件由utf8转gb2312编码, 转换时排除test开头的文件 1 选择文本编码转换的源目录 比如选择D:\web 2 选择文件编码转换的目标...

    UTF8编码内的繁简转换的PHP类

    曾找过一个JS版的,但是到了UTF8编码里不能用,于是就产生了自已写一个的念头。其实我这个代码的实现原理很简单的,只是一个替换字符集的过程,相信大部份人都可以写得出来。以下是代码,不知道有没有bug,大家如果...

    eclipse文件编码设置、转换原理与实用工具

    批量转换文件的二进制编码(用新的文件编码重写文件),如从gbk到utf-8,免除逐个文件全选、复制、右键、属性、改文本文件编码、粘贴、保存之苦(该转换是根据编码设置文件进行转换的,因此更加安全); c.结合上述...

    计算机字符编码基础讲解

    包括ASCII,Unicode,UTF-8编码的详细结构,基本原理,编程技巧的讲解

    字符集处理方案 GBK UTF-8

    字符集原理分析: 首先介绍一下目前我们系统中采用的不同字符集种类。第一,数据下载(中间件输出数据)。中间件输出数据的字符集都是GBK。GBK用在jsp(html)页面中,限定了输出字符集编码格式,输出到客户端的字节流...

    基于QT+百度AI的人脸识别系统 课设全套(源码+exe文件+ppt+word)

    4.4 UTF-8编码原理 5 4.5 JSON数据交换格式 5 4.6 Base64编码原理 5 5 系统设计与实现 5 5.1图片信息读取 6 5.2图片文件Base64转码 6 5.3 API用户认证与数据提交 6 5.4返回JSON数据解析 7 5.5文件系统 7 6 系统测试 ...

    MySQL索引长度限制原理解析

    这篇文章主要介绍了MySQL索引长度限制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 索引 TextField是不支持建立索引的 MySQL对索引字段长度有限制 ...

    ocr2text:通过OCR将PDF通过OCR转换为UTF-8编码的TXT文件

    给定一个或多个可能包含文本格式图像的PDF,请使用OCR(光学字符识别)将内容转换为TXT文件(采用UTF-8编码)。 基本原理 对现有PDF到TXT解决方案的调查发现,没有满足以下所有条件的现有解决方案: 是一种离线...

    M3U8批量DD.zip

    M3U8 是 Unicode 版本的 M3U,用 UTF-8 编码。"M3U" 和 "M3U8" 文件都是苹果公司使用的 HTTP Live Streaming(HLS) 协议格式的基础,这种协议格式可以在 iPhone 和 Macbook 等设备播放。 即HLS 是新一代流媒体...

    python中文乱码不着急,先看懂字节和字符

    我来讲一下字符问题我的理解吧,虽然我对Python的编码处理的具体细节还不太清楚,不过临时稍微看了一下,和Perl的原理也差不多 最重要的是必须区分“字符”和“字节”的不同,“字符”是抽象的,而“字节”是具体的 ...

    python中文编码与json中文输出问题详解

    前言 python2.x版本的字符编码有时让人很头疼,遇到问题,网上方法可以解决错误,但对原理还是一知半解,本文主要介绍 python 中字符串处理的原理,附带解决 json ...(2)将Unicode转化为某种类型的编码,如UTF-8,

    xmljava系统源码-FilesCodingConvert:批量文件编码格式转换工具

    如果需要导入别人的UTF-8编码的文件我会更改Eclipse的 Preferece选项,调节阅读编写模式为UTF-8。在AS中这个做法是失败的,Gradle编译时会提示编码格式与IDE的不同,可能会导致严重问题。然后调节IDE编码非常头疼。...

    解决Python2.7读写文件中的中文乱码问题

    但是本人对编码原理不了解,也没时间深究其中的原理。在此仅从应用的角度做一下总结, 1.设置默认编码 在Python代码中的任何地方出现中文,编译时都会报错,这时可以在代码的首行添加相应说明,明确utf-8编码格式,...

    SYN6288_Arduino_demo.zip

    SYN6288语音TTS模块 基于Arduino平台的 中文汉字英文数字混合发音DEMO; 进行了详细的注释,接线后,直接刷入Arduino即可使用; 用法: ...//输入 utf8 编码字符串 } //*** spk函数在ino文件中。

Global site tag (gtag.js) - Google Analytics