`

utf-8编码规则

阅读更多
http://blog.csdn.net/whuchlee/archive/2009/04/03/4041944.aspx
引用

UTF,是Unicode Text Format的缩写,意为Unicode文本格式。根据Unicode的编码可以生成utf-8编码,转换规则如下:
  (1)首先将Unicode的编码转换成二进制形式,这样一个字符对应一个16位的二进制数。
 (2)如果Unicode的16位二进制编码的头9位都是0,则用一个字节表示该字符,这个字节的首位是“0”,剩下的7位与原编码中的后7位相同。例如“\u0034”(0000 0000 0011 0100),用“34” (0011 0100)表示(与原Unicode编码是相同的,只是去掉了原编码的首字节);
 (3)如果Unicode的16位二进制编码的头5位都是0,则用两个字节表示该字符,首字节以“110”开头,该字节后面的5位与源编码中头5个零后面的5位相同;第二个字节以“10”开头,后面的六位则与源编码中剩下的6位相同。例如“\u025d”(0000 0010 0101 1101),转化后为“c99d”(1100 1001 1001 1101);
 (4)如果Unicode的16位二进制编码不符合上述两个规则,则用三个字节表示该字符。第一个字节以“1110”开头,后四位与源编码的头4位相同;第二个字节以“10”开头,后六位与原编码接下来的6位相同;第三个字节也以“10”开头,后六位与原编码剩下的6位相同,这样原来16位的编码就转换成三个字节24位的编码了;例如“\u9da7”(1001 1101 1010 0111),转化为“e9b6a7”(1110 1001 1011 0110 1010 0111)。






http://blog.csdn.net/sandyen/archive/2006/08/23/1108168.aspx
分享到:
评论

相关推荐

    判断文本文件是否为UTF-8编码

    2. **扫描字节序列**:遍历文件内容,检查字节序列是否符合UTF-8编码规则。对于多字节字符,后续字节的最高位应为10,且每个字节的排列组合能对应到Unicode字符。 3. **一致性检查**:在整个文件中,确保所有的字节...

    UTF-8汉字码表.txt

    #### 三、UTF-8编码规则 UTF-8编码的规则取决于被编码的Unicode字符的范围: 1. **ASCII字符**(U+0000至U+007F): - 使用一个字节表示,形式为`0xxxxxxx`。 2. **扩展ASCII字符**(U+0080至U+07FF): - 使用...

    utf-8.rar_c++ string utf-8_string to utf-8_utf_utf 8_utf-8

    在C++编程中,UTF-8编码是一种广泛使用的字符编码标准,它能够表示Unicode字符集中的所有字符。本文将深入探讨如何在C++中处理UTF-8字符串,并介绍相关的关键概念和技术。 首先,C++标准库并没有直接支持UTF-8编码...

    UTF-8toGBK_labview编码gbk_LabVIEWUTF-8_utf-8toGbk_

    在LabVIEW编程环境中,"UTF-8toGBK.vi"这个程序可能是一个用户自定义的VI(Virtual Instrument),用于将UTF-8编码的字符串转换为GBK编码。LabVIEW作为一个图形化编程语言,提供了丰富的字符串处理函数,其中包括了...

    UTF-8编码转换器

    UTF-8编码是一种广泛使用的字符编码标准,它在信息技术领域起着至关重要的作用。这个“UTF-8编码转换器”工具旨在帮助用户方便地将文本数据从其他编码格式转换为UTF-8,确保数据在不同系统和平台之间的兼容性。 在...

    易语言判断UTF-8字符

    这个函数会检查字符串的每个字节,根据UTF-8编码规则来判断其合法性。UTF-8编码的特点是不同的字符由不同数量的字节表示,从1字节到4字节不等,且每个字节的最高位都有特定的值来标识这是一个UTF-8编码的字符。 在...

    java 中文字符串,utf-8编码为byte数组的计算过程

    这是因为UTF-8编码规则决定了不同码点范围的字符需要不同数量的字节来表示: - 对于码点U+0000到U+007F,UTF-8使用1个字节(7位)表示。 - 对于码点U+0080到U+07FF,UTF-8使用2个字节(11位)表示。 - 对于码点U+...

    通过javascript进行UTF-8编码的实现方法

    在将Unicode字符串转换为UTF-8编码的示例中,可以使用charCodeAt方法来获取字符的Unicode码值,然后通过将码值转换为二进制并补位的方式,来构建符合UTF-8编码规则的字节序列。对于一个英文字符"A",它在Unicode中的...

    中文转UTF-8编码

    具体来说,对于一个非ASCII的中文字符,UTF-8编码规则如下: - 对于Unicode范围在U+0080到U+07FF之间的字符,用两个字节表示。 - 对于Unicode范围在U+0800到U+FFFF之间的字符,用三个字节表示。 #### 四、示例代码...

    UTF-8 Unicode GBK GB2312 编码之间的区别和联系

    - 对于含有大量英文字符的网站或论坛,建议使用UTF-8编码,因为它更节省空间且具有更好的国际通用性。 - 对于需要支持GBK编码的插件或软件,在没有UTF-8支持的情况下,可能需要使用GBK编码。 #### 八、总结 UTF-8...

    GBK编码转换和UTF-8编码转换模块源码

    GBK编码和UTF-8编码是两种广泛使用的字符编码标准,它们各有特点,但不兼容,因此在不同环境下进行数据交换时,需要进行相应的转换。 GBK编码是中国大陆广泛采用的一种汉字编码标准,它是GB2312的扩展,包含了更多...

    gb2312编码转utf-8编码

    3. **转换编码**:使用编程语言提供的函数或库,如Python的`codecs`模块,将GB2312字节序列解码为Unicode字符串,再将该字符串按照UTF-8编码规则重新编码为字节序列。 4. **写入新文件**:最后,将转换后的字节序列...

    ASP 生成静态网页(UTF-8)

    在涉及到UTF-8编码时,我们确保生成的静态网页能够正确显示多种语言的字符,特别是非英文字符,如中文、日文、韩文等。 在ASP中生成静态网页的过程主要包括以下步骤: 1. **动态数据获取**:首先,ASP脚本需要获取...

    UTF-16汉字编码表

    与UTF-8相比,UTF-16在处理包含大量非拉丁文字符的语言时具有更好的性能。 #### 二、UTF-16编码原理 UTF-16将Unicode字符集中的每一个字符映射到一个16位或32位的数值上。对于基本多文种平面(Basic Multilingual ...

    易语言TXT快速转换UTF-8源码

    4. 转换编码:将字符数组按照UTF-8编码规则重新编码。 5. 写入新文件:创建一个新文件,以UTF-8编码写入转换后的字符数组。 6. 关闭文件:完成写入后,关闭源文件和目标文件。 7. 错误处理:在整个过程中,需要设置...

    UTF-8转ANSI文本文件转换器

    转换器的工作原理通常是读取UTF-8编码的文件,解析其中的每个字符,然后根据ANSI编码的规则重新编码。由于两种编码的字符映射不完全相同,转换过程中可能会出现乱码情况,特别是当源文件包含ANSI编码不支持的字符时...

    utf-8 中文字符表

    此外,对于处理网络报文通讯的开发人员,理解UTF-8编码规则也至关重要。在网络通信中,数据通常以字节流的形式传输,因此正确解析UTF-8编码的字符至关重要,避免因编码问题导致的信息丢失或误解。 总的来说,UTF-8...

    UTF-8toGBK_labview编码gbk_LabVIEWUTF-8_utf-8toGbk_源码.zip

    转换过程包括读取UTF-8编码的字符串,然后根据GBK编码规则重新排列字节,以生成GBK编码的字符串。这个过程中需要注意字节顺序和多字节字符的处理,以确保转换的准确性。 LabVIEW编程环境中,可以创建自定义VI(虚拟...

    求汉字编码,不满足UTF-8要求的输出-1

    这一过程是编码验证的基础,因为我们需要首先将输入的十六进制字符串转换为二进制形式,才能进一步分析其是否符合 UTF-8 编码规则。 ### 3. UTF-8 编码验证 #### 3.1 输入处理 给定的文件描述了一个具体的输入...

    UTF-8编码转GBK编码

    本主题聚焦于“UTF-8编码转GBK编码”,这是一个常见的需求,特别是在嵌入式系统如单片机中,由于资源限制,可能需要将UTF-8编码的字符串转换为GBK编码以便正确显示中文字符。 首先,我们要理解UTF-8和GBK这两种编码...

Global site tag (gtag.js) - Google Analytics