`
dingjun1
  • 浏览: 214307 次
  • 性别: 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

    深入理解UTF-8字符编码是理解现代计算机系统中文本处理的关键。UTF-8是一种广泛使用的Unicode字符编码方案,它能够表示Unicode字符集中所有的字符,从基本拉丁字母到复杂的汉字和符号。本文档将深入探讨UTF-8在...

    Ansi Unicode UTF8编码转换及代码示例

    ### ANSI、Unicode与UTF-8编码转换及相关代码示例 #### 一、基本概念解析 在探讨ANSI、Unicode以及UTF-8之间的转换之前,我们首先需要了解这三种编码的基本概念及其应用场景。 - **ANSI编码**:ANSI(American ...

    EncodeDecode & ANSI-UTF8编码转换工具

    "EncodeDecode & ANSI-UTF8编码转换工具"的工作原理可能是读取输入文本文件,识别其当前的编码格式(如ANSI),然后将每个字符转换成对应的Unicode值,再根据目标编码(如UTF-8)重新编码这些字符。这个过程可能涉及...

    gb2312_unicode_utf8汉字编码对照表

    本文将基于提供的gb2312、Unicode与UTF-8的汉字编码对照表,深入探讨这三种编码方式的基本原理及其相互转换的方法。 #### 二、gb2312编码概述 gb2312(国标2312)是中国大陆最早制定的一个汉字编码标准,主要收录...

    UTF7 编码及解码工具

    4. **教学与研究**:对于学习网络安全或编程的人来说,这个工具提供了直观的编码解码体验,有助于理解UTF7编码的工作原理及其在XSS攻击中的作用。 总的来说,UTF7编码虽然不常用,但在特定环境下,尤其是涉及XSS...

    中文转UTF-8编码

    #### 三、中文转UTF-8编码原理 在UTF-8编码中,对于不同范围内的Unicode字符,编码方式有所不同: 1. **单字节编码**:对于ASCII字符集中的字符(即Unicode值在0x00~0x7F之间的字符),UTF-8编码就是字符本身的值...

    utf8.zip_UTF8_VB6 UTF-8_cutf8.cls_utf8解码在线_vb6

    在实际使用中,开发者需要理解UTF-8编码的原理,例如每个字符如何用不同数量的字节表示,以及如何识别和处理多字节序列。同时,为了确保代码的兼容性和稳定性,需要对错误处理和边界条件有深入的理解,比如处理含有...

    对UTF8编码的初步认识.rar_UTF8_utf

    “对UTF8编码的初步认识.htm”很可能是一个网页,它可能详细介绍了UTF8的历史、原理以及如何在不同编程语言中使用UTF8进行编码和解码。通过学习这个网页,我们可以深入理解UTF8的工作机制,比如字节顺序标记(BOM)...

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

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

    UTF-8汉字码表.txt

    ### UTF-8编码详解 #### 一、简介 在计算机科学领域中,字符编码是将字符映射到二进制数字的一种方式。其中,UTF-8(8位通用转换格式)是一种可变...这对于理解计算机科学中的字符编码原理和技术具有重要的参考价值。

    asp下GB2312转UTF8编码

    本篇将详细介绍ASP中GB2312转UTF-8的原理和方法。 GB2312是中国大陆广泛使用的简体中文字符集,包含了6763个常用汉字和一些其他符号。而UTF-8是一种变长编码,可以表示Unicode字符集中所有的字符,包括中文、英文、...

    UTF-8 汉字码表

    #### UTF-8编码原理 UTF-8(Unicode Transformation Format - 8 bits)是一种变长字符编码,由Ken Thompson于1992年设计,旨在解决多语言环境下字符编码兼容性问题。其核心优势在于能够以不同的字节长度来表示不同...

    utf8.rar_UTF8_utf8二进制编码_utf8等格式_编码格式

    UTF8编码是Unicode的一种实现方式,它是一种...了解和掌握UTF8编码的基本原理和操作方法对于解决这些问题至关重要。同时,了解如何从二进制数据转换为UTF8字符,可以帮助我们更好地处理和理解包含非ASCII字符的数据。

    VB(Visual Basic) UTF8 字符编码

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

    深入UTF8字符编码.pdf

    深入探讨UTF-8字符编码,理解其在不同平台与应用中的表现及转换机制,对于现代软件开发、数据库管理和网络通信尤为重要。以下是从给定文件中提取的关键知识点,旨在全面解析UTF-8编码在Windows系统、文本工具、JAVA...

    汉字字符编码(utf-8 unicode gb2312)

    - **UTF-8中文字符表.txt**:这个文件可能包含了使用UTF-8编码的所有中文字符,每个字符会以UTF-8编码的形式展示,通常用于验证程序对UTF-8编码的支持或进行字符编码教学。 - **unicode 汉字表.txt**:此文件很可能...

    UTF-8 编码转换工具

    1. **UTF-8编码原理** UTF-8的全称是“8位无符号字符转换格式”(UCS Transformation Format - 8 bit)。每个Unicode字符在UTF-8中可以由1到4个字节表示。简单来说,对于ASCII字符(包括英文、数字和一些特殊符号)...

    C++转UTF8编码.txt

    本文将深入探讨如何使用C++将普通字符串转换为UTF8编码格式,这一过程涉及到的知识点包括但不限于:C++语言特性、字符串操作、编码转换原理以及相关的标准库函数应用。 ### C++中的字符串与编码 在C++中,字符串...

    UTF-16汉字编码表

    #### 二、UTF-16编码原理 UTF-16将Unicode字符集中的每一个字符映射到一个16位或32位的数值上。对于基本多文种平面(Basic Multilingual Plane,BMP)内的字符,UTF-16使用16位编码单元进行编码;而对于BMP之外的...

    易语言UTF8解码

    在实际编程中,你需要理解这些函数的工作原理,并能正确地调用它们,以便在易语言程序中处理UTF-8编码的数据。 了解并掌握易语言UTF8解码技术对于处理多语言支持、网络通信、文件读写等场景非常重要。例如,当你从...

Global site tag (gtag.js) - Google Analytics