`
inspire_xg
  • 浏览: 27887 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Unicode和UTF系列(2)

 
阅读更多
UFT-8
        UTF-8采用的是变长码的方式,其编码规则如下:
代码点值的范围(16进制)        第1字节         第2字节         第3字节
0000 0000-0000 007F         0xxxxxxx0-127)                        
0000 0080-0000 07FF         110xxxxx (192-223)        10xxxxxx (128-191)        
0000 0800-0000 FFFF         1110xxxx (224-239)        10xxxxxx (128-191)        10xxxxxx (128-191)       


        注:x的内容是将左边代码点的二进制值依次注入。
        理论上UTF-8可以达到6个字节编码(上表省略后3位字节以上的编码方式),但实际上,我们一般只采用0x0000 0000 到0x0000 0000FFFF的范围内的字符,也就说UTF-8实际上只采用了3个字节编码。
        UTF-8除了省空间和兼容ASCII的优点后,其编码方式(类似于哈夫曼编码,很容易判断出1个字节及其后面的字节数)决定了它以下两个优点:
        1、与字节顺序无关, 可以在不同平台之间交流。
        2、容错能力高, 任何一个字节损坏后, 最多只会导致一个编码码位损失, 不会链锁错误(如GB码错一个字节就会整行乱码)

UTF-16和UTF-32
        UTF-16是变长码,大致上相当于UCS-2码的直接实现,但是也有一部分UCS-4的字符。所以可以猜到,它大部分是采用2个字节编码,而有部分特殊符号采用3字节编码,所以大致相当于20位编码, 值在0到0x10FFFF之间。
        UTF-32用四个字节表示代码点,这样就可以完全表示UCS-4的所有代码点。
分享到:
评论

相关推荐

    Unicode-UTF8-0.62.tar_c_linux_strikemvd_unicode_

    UTF-8是一种变长的字节编码方式,它将Unicode码点转换成一系列的字节序列。对于不同的码点,UTF-8使用1到4个字节进行编码。例如,ASCII字符(码点在U+0000至U+007F之间)使用单个字节表示,而大部分汉字则需要三个...

    字符编码笔记:ASCII,Unicode和UTF-8

    ### 字符编码笔记:ASCII,Unicode和UTF-8 #### 1. ASCII码 ASCII码是上个世纪60年代由美国制定的一套字符编码标准,用于规定英语字符与计算机内部二进制位之间的关系。在计算机内部,信息通常以二进制形式存在,...

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

    Unicode和UTF-8之间的转换更为复杂,因为它们之间不存在一对一的关系,而是需要通过一系列算法来完成。 1. **从Unicode到UTF-8**:Unicode编码中的每个字符被映射到UTF-8中的1到4个字节。转换过程中需要判断Unicode...

    unicode_utf8转换 unicode_utf8转换

    Unicode和UTF-8是两种广泛使用的字符编码标准,它们各自有其特点和应用场景。本篇文章将深入探讨"unicode_utf8转换"这一主题,以及如何在源码软件中实现这种转换。 首先,我们来理解Unicode和UTF-8的含义。Unicode...

    VB字符串处理(unicode、UTF)

    UTF(Unicode Transformation Format)是一系列用于编码Unicode字符的编码方式,包括UTF-8、UTF-16和UTF-32等。其中,UTF-8是最常用的,它用1到4个字节来表示一个码点,ASCII字符只用1个字节,而其他字符则用更多...

    易语言unicode转换UTF8

    2. **码点转换**:根据Unicode码点,查找对应的UTF-8编码。UTF-8编码规则是:对于码点小于128的ASCII字符,直接用单个字节表示;对于其他码点,使用多个字节,首位字节通过特定的二进制模式标记出字符的长度。 3. *...

    ASCII、Unicode和UTF-8.doc

    ASCII、Unicode和UTF-8是计算机世界中处理字符编码的三种重要标准,它们各自有着不同的历史背景和设计目的,对于理解和处理多语言文本至关重要。 首先,ASCII(American Standard Code for Information Interchange...

    CPPC++_Unicode例程UTF8 UTF16 UTF32和Base64十亿字符每秒使用SSE2 AVX2 NE.zip

    Unicode为每个字符分配了一个唯一的代码点,而UTF(Unicode Transformation Format)是将这些代码点转换为一系列字节的编码方式。UTF-8、UTF-16和UTF-32是Unicode字符编码中常见的三种格式。UTF-8是一种可变长度的...

    Erlang UTF-8 转 Unicode 的字典程序

    这个模块可能包含了一系列函数,如`utf8_to_unicode/1`,可以接受一个UTF-8编码的二进制数据或者字符串,然后返回对应的Unicode码点列表。通过这样的功能,开发者可以在任何Erlang环境中无缝地处理Unicode字符,而不...

    Unicode2GB UTF8ToGB 字符集转换(跨平台)

    本文将深入探讨“Unicode2GB”和“UTF8ToGB”字符集转换的相关知识点,以及如何在C++环境中实现这些转换。 首先,我们需要理解字符集的基本概念。字符集是一系列符号和编码的集合,它定义了每个字符如何用二进制...

    中文 Big5/GBK/Unicode/UTF8 内码转换器

    在提供的压缩包文件中,我们看到有ConvertZ.exe作为主程序,ConvertZ.hlp为帮助文件,Readme系列文件分别提供了不同编码的说明文档,BI_TradFix.dat和BI_SimFix.dat可能是用于转换的字库文件,而西西下载.txt和西西...

    附录A.字符编码_3在LinuxC编程中使用Unicode和UTF-8[总结].pdf

    在Linux C编程中,字符编码主要涉及Unicode和UTF-8标准。Unicode是一个广泛采用的字符集,它包含世界上几乎所有的文字系统,而UTF-8是Unicode的一种编码方式,具有良好的向后兼容性和易于处理的特性。 UTF-8编码在...

    UNICODE,UTF8,ANSI 等编码规范详解

    本文将深入探讨几种常见的字符编码规范,包括ASCII、Unicode、UTF8、ANSI、GBK、GB18030等,以及它们之间的关系和转换规则。 1. ASCII编码:ASCII(American Standard Code for Information Interchange,美国信息...

    [NTDLL][Rtl系列]UNICODE互转UTF8

    2. 使用C++标准库:如果你的代码使用了C++,可以利用`std::wstring_convert`和`std::codecvt_utf8_utf16`来实现转换。不过需要注意,这部分在C++17之后已被标记为过时。 3. 第三方库:如Boost库提供了`boost::...

    UNICODE\Unicode,GBK,GB2312,UTF-8概念基础

    UCS有UCS-2和UCS-4两种编码形式,分别对应2字节和4字节的编码方式。UCS-2类似于早期Unicode的16位编码,而UCS-4则提供了更大的编码空间,能够表示Unicode的所有字符。 UTF(Unicode Transformation Format)是一...

    汉字,UTF8,GB2312,UNICODE之间的转换

    汉字、UTF8、GB2312和UNICODE都是与汉字编码相关的概念,理解和掌握它们之间的转换对于进行跨平台的软件开发和数据处理至关重要。 1. **汉字编码** 汉字编码是为了能在计算机内部表示和处理汉字而设计的一系列标准...

    utf-8、ANSI、unicode

    UTF-8(8-bit Unicode Transformation Format)是Unicode的一种编码形式,它可以将Unicode编码转换成一系列1到4字节的序列。UTF-8的最大优点是向后兼容ASCII编码,并且对于英文字符只需要一个字节,这使得它在网络...

    STM32 C 语言转换 utf8 gb2312

    UTF-8是一种变长的Unicode编码,广泛用于网络和操作系统,而GB2312是中国大陆早期的简体中文字符集,主要用于存储中文文本。 标题"STM32 C 语言转换 utf8 gb2312"涉及的主要知识点包括: 1. **C语言编程**:C语言...

    Notepad++(UNICODE)简体中文

    在Notepad++中,"UNICODE"指的是UTF-16编码,这是一种广泛使用的Unicode实现方式,能够处理世界上几乎所有的文字系统。通过使用UNICODE,Notepad++能够正确地显示和保存包含中文字符的文件,这对于中文开发者来说...

    UTF-16汉字编码表

    UTF-16作为Unicode标准的一部分,被广泛应用于各种系统和软件中。对于汉字而言,UTF-16提供了统一且广泛的编码支持,使得不同系统之间可以无障碍地交换包含汉字的信息。此外,UTF-16还支持多种语言和符号,这对于...

Global site tag (gtag.js) - Google Analytics