`
H小阿飞
  • 浏览: 278517 次
  • 性别: Icon_minigender_1
  • 来自: 南通
社区版块
存档分类
最新评论

在UTF-8字符集中,一个中文字并不是2字节

    博客分类:
  • Java
 
阅读更多

   在UTF-8字符集中一个中文字
   占2个字节的:0个
   占3个字节的:基本等同于GBK,含21000多个汉字
   占4个字节的:中日韩超大字符集里面的汉字,有5万多个

 

UTF-8是一种Unicode编码方式。他是一种不等幅的编码方式,UTF-8编码的字节长度取决于所要编码的字符在ISO   10646中的编码值。在UTF-8中,不同的字符,可能需要1-6个字节来进行编码。对于单字节的UTF-8编码,该字节的最高位为0,其余7位用来对字符进行编码(等同于ASCII码)。对于多字节的UTF-8编码,如果编码包含n个字节,那么第一个字节的前n位为1,第一个字节的第n+1位为0,该字节的剩余各位用来对字符进行编码。在第一个字节之后的所有的字节,都是最高两位为"10",其余6位用来对字符进行编码。  
   
  例如“未”字,其编码为:0xE69CAA,转换为二进制为:1110   0110   1001   1100   1010   1010,从这里可以看出,该字在UTF-8编码下本身就是3个字节。  
   
  所以,在UTF-8中,一个中文字并不是2个字节,而是超过了两个字节。并不是所有的中文字最后结尾都是0xAA。

分享到:
评论

相关推荐

    易语言判断UTF-8字符

    4. **字符串处理技巧**:在易语言中,可以结合其他字符串处理函数,如`取字符串长度`、`截取字符串`等,配合`IsTextUTF8`来实现更复杂的文本操作,例如将非UTF-8字符串转换为UTF-8,或者从UTF-8字符串中提取特定部分...

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

    例如,一个包含多字节UTF-8字符的字符串中,单个字节并不一定代表一个完整字符。这就需要使用特定的函数或算法来正确解析和操作这些字符。 C++标准库提供了一些工具,如`std::getline`和`std::stringstream`,可以...

    UCS-2转换为utf-8代码

    这个过程可以使用 UCS2toUTF8Code 函数实现,该函数将 UCS-2 字符转换为 UTF-8 字符,并将结果存储在 TmpUtf8 数组中。 UCS-2 转换为 UTF-8 的步骤 1.首先,需要将输入字符串转换为 UCS-2 字符数组,使用 StrToUCS...

    utf-8 ansi 字符互转 工具

    在IT领域,字符编码是一个非常重要的概念,尤其是在处理多语言文本时。...在给定的压缩包文件“bmhzgj”中,可能包含的就是一个用于实现UTF-8与ANSI字符互转的工具,用户可以下载并使用它来解决实际问题。

    多字节与UTF-8、Unicode之间的转换

    - 先使用`MultiByteToWideChar`将UTF-8字符串转换为宽字符字符串。 - 然后通过`WideCharToMultiByte`函数将宽字符字符串转换为多字节编码的字符串。 3. **MBToUnicode** 此函数负责将多字节编码转换为Unicode...

    常用汉字utf-8字符集.txt

    《常用汉字utf-8字符集》不仅是一份技术文档,更是现代数字化社会中不可或缺的资源。它不仅促进了不同文化之间的交流,也加强了信息安全防护机制。通过对汉字的精确编码和随机生成,我们可以在多个领域实现更高效、...

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

    当UTF-8字符串中包含GBK不支持的字符时,转换可能会失败或者产生乱码。因此,在进行编码转换时,需要确保清楚源字符串的编码类型,并且在转换前后进行适当的错误检查和处理。 总的来说,理解和掌握UTF-8和GBK这两种...

    utf-8 中文字符表

    - 双字节的UTF-8字符:第一位是10,其余位用来编码Unicode码点的低7位,范围大致对应0x80-0x7FF。 - 三字节的UTF-8字符:前两位是110,中间三位用来编码Unicode码点的低11位,范围大致对应0x800-0xFFFF。 - 四字节的...

    utf-8 互转 gb2312 转码

    对于中文等其他语言,UTF-8使用1到4个字节来表示一个字符,使得它能够处理世界上几乎所有的语言文字。 GB2312,全称为“汉字机内码交换码”,是中国大陆早期的简体中文字符编码标准,主要用于早期的计算机系统和...

    c++ UTF-8 UTF-16转换

    UTF-8是一种变长的字符编码,它使用1到4个字节来表示一个Unicode字符,其中ASCII字符(0-127)只需要1个字节。UTF-16则通常使用2个字节,对于大部分的Unicode字符,但对超出基本多文种平面(BMP)的字符,如表情符号...

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

    UTF-8的特点是前几个常用的ASCII字符(如英文字符)使用单字节编码,而其他非ASCII字符则使用2到4个字节。这种设计使得UTF-8与ASCII兼容,同时支持全球多种语言的字符。在网页、编程语言和操作系统中,UTF-8已成为...

    字符转码,gb2312 usc2 ,utf-8

    本篇文章将详细探讨标题和描述中提到的“gb2312”,“usc2”以及“utf-8”这三种字符编码格式。 首先,我们来了解一下GB2312编码。GB2312,全称“汉字国标交换码”,是中国国家标准的简体中文字符集,主要用于中国...

    Java解决UTF-8的BOM问题

    BOM是Unicode编码中的一个特殊字符,它的Unicode码点是`U+FEFF`,在UTF-8编码中,BOM的字节序列是`EF BB BF`。BOM的主要作用是在数据传输或存储时标识文件或数据流的字符编码,尤其是区分大端序(Big-Endian)和小端...

    Java避免UTF-8的csv文件打开中文出现乱码的方法

    UTF-8是一种变长编码格式,使用1到4个字节来表示一个字符。UTF-16LE是一种定长编码格式,每个字符使用2个字节来表示。Excel 2007以上版本可以识别UTF-16LE编码格式的BOM(Byte Order Mark),因此在输出csv文件时,...

    UTF-8 编码转换工具

    UTF-8编码是一种广泛使用的字符编码标准,尤其在网络和计算机系统中扮演着核心角色。它能够表示Unicode字符集中的所有字符,包括世界各地的各种语言。UTF-8的优势在于其兼容性和效率,不同平台和语言通常都能无缝...

    UTF-8与GB与 Big5之间的转换

    特别是当一个字符串中包含不被目标编码集支持的字符时,例如UTF-8中的某些特殊符号或非中文字符,转换过程中就可能出现错误。描述中提到的"遇到 ? . 的符号号就停止,后面的就不转换了",这通常是由于转换过程中遇到...

    Patchwork UTF-8:处理UTF-8格式字符串的便携类库.zip

    3. **遍历与访问**:提供迭代器接口,使得开发者可以轻松地遍历UTF-8字符串中的每个字符,而无需关心底层的字节表示。 4. **字符串操作**:包括查找、替换、截取等基本字符串操作,这些操作都考虑到UTF-8的特性,...

    Patchwork UTF-8:处理UTF-8格式字符串的便携类库

    3. **长度计算**:由于UTF-8字符可能由1到4个字节组成,因此计算字符串长度并不简单。Patchwork UTF-8提供了精确的字符串长度计算方法,考虑到了每个字符的实际占用字节数。 4. **子串提取**:可以正确地提取UTF-8...

    utf-8转换asii-2码的转换工具

    UTF-8的特点是它对ASCII字符(英文字符)的编码与ASCII编码相同,即前128个Unicode字符(0到127)只用一个字节表示,这使得UTF-8兼容大多数基于ASCII的系统,且在网络传输中更为高效。 ASCII-2,又称为Extended ...

Global site tag (gtag.js) - Google Analytics