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

Unicode和UTF系列(1)

 
阅读更多
Unicode和UTF系列

Unicode
        Unicode 字符集收录了这世界上所有的文字符号和特殊符号。对于每一个符号都定义了一个值,称为代码点(code point)。代码点可以用2个字节表示(UCS-2),也可以用4个字节(UCS-4编码)。

UTF系列
为什么出现UTF编码?
        UCS编码虽然定义了每个代码点的编码方式,但是没规定如何传输和存储。比如,在UCS-2码中,英文符号是在ACSII码的前面加上一个0 byte,像"A"的ASCII码 0x41,在UCS码中就是0x0041,这样,对于英文系统来讲会出现大量的0 byte,造成不必要的浪费。而且容易存在对现在ASCII码不兼容的问题。所以这个重担就落在了UTF编码身上,全称是Unicode Transformation Format。
什么是Endian?
        我们知道"中"字的UFT-16编码是0x4E,0x2D,但是传输存储的过程中,字节的顺序有可能是(0x4E,0x2D),也可能是(0x2D,0x4E),这就是涉及一个字节序的问题。对于前一种,我们称为Big Endian(大尾,也就是高位在前),而后一总称为Little Endian(小尾,低位在前)。
        那我们如何知道在不清楚哪一"尾"的情况下进行解析?
先人已有解决的办法,就是在最前面加多2个字节,OxFEFF表示BE,而0xFFFE表示LE。(注:OxFEFF是实际上不存在的字符,所以正常情况下是不会使用到的,所以,不用担心出现与正常的字符数据冲突的问题),这就是所谓的BOM(Bill Of Material)。
        UTF系列都存在LE,BE,BOM,无BOM几种版本。
        比如"中国"的各个版本UTF-16字符编码如下:
编码        字节序列
UTF-16BE        4E,2D,56,FD
UTF-16LE        2D,4E,fD,56
UTF-16(BOM,BE)        FE,FF,4E,2D,56,FD
UTF-16(BOM,LE)        FF,FE,2D,4E,fD,56
分享到:
评论

相关推荐

    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转换

    1. **Unicode到UTF-8的转换**:给定一个Unicode码点,我们需要将其转换为UTF-8编码的字节序列。这通常通过一系列的位操作完成,如确定前导字节的数量,设置特定的位模式,然后将码点拆分为多个字节。 2. **UTF-8到...

    VB字符串处理(unicode、UTF)

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

    易语言unicode转换UTF8

    而UTF-8是一种变长的Unicode编码方式,它可以根据不同的码点长度使用1到4个字节来表示一个字符,且在ASCII兼容性上表现出色,使得它在网络传输和存储中广泛应用。 在易语言中,处理Unicode到UTF-8的转换通常涉及...

    ASCII、Unicode和UTF-8.doc

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

    Erlang UTF-8 转 Unicode 的字典程序

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

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

    UTF-8是Unicode的一种实现方式,它是一种变长编码,根据字符的不同,可以占用1至4个字节。UTF-8的优点在于对ASCII字符集的兼容性,使得英文字符只占用一个字节,而大部分中文字符则占用3个字节。 “中文 Big5/GBK/...

    附录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,美国信息...

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

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

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

    UTF-8是一种变长的Unicode编码方式,它使用1到4个字节来表示一个字符,广泛用于网络传输和存储。GBK是基于GB2312的,它是单字节和双字节编码的混合,可以看作是简体中文的扩展GBK版本。 在C++中进行字符集转换,...

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

    而UTF-8是Unicode的一种编码方式,它使用1到4个字节来表示一个字符,这种编码方式在互联网上非常常见,因为其字节顺序独立,且对ASCII字符兼容。 在Windows编程中,尤其是涉及到系统API时,经常需要处理Unicode字符...

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

    UTF(Unicode Transformation Format)是一系列将Unicode字符转换为字节序列的编码方式,以便在网络传输、文件存储等场景中使用。UTF-8是最广泛使用的编码格式,它使用8位字节,并根据字符的不同范围使用1至4个字节...

    汉字,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