众所周知ASCII码是使用指定的7位或8位二进制数组合来表示128或256种可能的字符。ASCII编码可以表示的最大字符数年是256,其实英文字符并没有那么多,一般只用前128个(最高位为了0),其中包括了控制字符、数字、大小写字母和其他一些符号。而最高为1的另128个字符为“扩展ACSII”。128个字符,其中0x00~0x1F(0~31)、)、0x7F(127)是控制符。其他编码0x20~0x7E(32~126)则定义实际可见的字符,包括数字、大小写英文字母、标点符号等。
GBK编码
GBK是国家标准编码,它是对gb2312的扩展,定义了包含简体中文、繁体中文、日文、韩文等所用的字符。现在常用的Windows简体中文系统默认就是使用这种编码方式来解释字符的。在编码上,GBK采用了单双字节混合的方式。它兼容ASCII,因些0x~07F部分的定义和ASCII一样。对其他字符,它使用两个字节来表示,但弟一个字符最高位必须是1,即必须是0x80~0xFF,以便在解码时和兼容ASCII的字符区别,弟二个字节则没此限制。
解码时,需要逐个字节检查具体如下:
1.如果这个字节的范围是0x00~0x7F,即最高位是0时,这个字节本身就代表一个字符,和ASCII的含义相同。
2.如果字节范围0x80~0xFF,即最高位为1时,还需要再取下一个字节,两个字节合起来才表示一个字符。GB_2312 字符集包含了 6763个的 简体汉字,和682 个标准中文符号。在这个标准中,每个汉字用2个字节来表示,每个字节的ascii码为 161-254 (16 进制A1 - FE),第一个字节 对应于 区码的1-94 区,第二个字节 对应于位码的1-94 位。
UTF8编码
在UTF-8里,英文字符仍然跟ASCII编码一样,因此原先的函数库可以继续使用。而中文的编码范围是在0080-07FF之间,因此是2个字节表示(但这两个字节和GB编码的两个字节是不同的),用专门的Unicode处理类可以对UTF编码进行处理,三个字节则用于中文简、中文繁等。
对应UCS-2的字符 UTF-8字节数据编码/解释
U+0000 - U+007F 0*** ****(0x00~0x7F) 字节最高位为了0,则它表示一个字符,和ASCII解释一样
U+0080 - U+07FF 110* **** 10** ****(0xC0~0xDF) 字节最高三位是110,则这是双字节编码,用于其他字母字符
U+0800 - U+FFFF 1110 **** 10** **** 10** ****(0xE0~0xEF) 字节最高四位是1110,则这是三字节编码,用于其他字符,如中文简繁等
分享到:
相关推荐
本篇将详细介绍GBK与UTF-8编码的区别,以及如何在C语言中进行这两种编码的转换。 1. **GBK编码** - GBK是中国大陆广泛使用的汉字编码标准,它是GB2312的扩展,包含了更多的汉字和符号,总共约2万多个汉字。 - GBK...
如果你的网站或程序原来使用GBK编码,但在处理非中文字符或者需要与其他使用UTF-8的系统交互时,就需要进行转换。反之亦然,如果要将原本UTF-8编码的资源转换为GBK,以适应特定环境或旧系统的需要,也需要转换操作。...
UTF-8使用1到4个字节来表示一个字符,对于ASCII字符(如英文、数字等),UTF-8编码与ASCII编码完全一致,这使得它具有良好的向后兼容性。 "GBK转UTF8"是指将使用GBK编码的文件转换成使用UTF-8编码的过程。这个过程...
本文将详细介绍如何在Microsoft Foundation Classes (MFC)环境下实现GBK与UTF-8之间的编码转换。该技术适用于那些需要处理不同字符集数据的应用程序开发场景,特别是在早期Windows系统中广泛使用的MFC框架下进行编码...
相反,从UTF-8到GBK的转换则需要识别出UTF-8编码的字节序列,找到对应的Unicode码点,再查找这个码点在GBK编码中的对应双字节序列。 在进行编码转换时,需要注意以下几点: 1. 检查原始文件的编码格式,避免乱码...
在提供的`gbk_utf8_unicode.c`和`gbk_utf8_unicode.h`文件中,可能包含了用于实现UTF-8与GBK之间转换的函数。这些函数可能包括将GBK编码的字符串转换为UTF-8,以及将UTF-8编码的字符串转换为GBK。 例如,一个可能的...
UTF-8的最大优点是与ASCII兼容,这意味着英文和其他使用ASCII编码的字符在UTF-8下保持不变,这使得UTF-8成为互联网上最常用的字符编码。 在Keil MDK环境下,这通常涉及到的是嵌入式开发,单片机因其资源有限,通常...
本篇文章将详细探讨UTF-8与GBK编码,以及如何在LabVIEW环境下进行这两种编码之间的转换。 首先,UTF-8(Unicode Transformation Format - 8 bit)是一种变长的Unicode编码,它使用1到4个字节来表示一个字符。UTF-8...
综上所述,`c/c++ 字符集 gbk/utf8互转,Ansi/Utf8互转 纯c实现跨平台`涉及了字符编码理论、字符串处理和跨平台编程技术。通过理解这些知识点,并结合提供的源代码,开发者可以构建出能够在各种环境下正确处理字符...
UTF-8使用1到4个字节来表示一个字符,对于英文和ASCII字符,它与ASCII编码完全兼容,而对于中文等非ASCII字符,需要多个字节。UTF-8编码的优势在于跨平台兼容性和网络传输效率,因为英文字符只用一个字节,所以在...
UTF-8最大的优点在于对ASCII字符的兼容性,前128个字符(包括英文、数字和一些标点符号)与ASCII编码相同,且在Web上广泛支持,是处理多语言文本的标准编码。 "GBK2UTF8"源码的实现主要涉及到字符编码的转换过程。...
本文将深入探讨C语言中如何实现GBK与UTF-8的互相转换,同时不依赖任何外部库。 GBK是中国大陆广泛采用的一种汉字编码标准,它是GB2312的扩展,包含了更多的汉字和符号,能够覆盖大部分中文字符。UTF-8则是一种多...
本文将详细讨论“GBK_to_UTF8”编码转换工具的相关知识点,包括编码的基本概念、GBK与UTF-8的区别以及转换工具的使用方法。 首先,让我们了解编码的基础知识。计算机只认识二进制,而人类则使用字符进行交流,因此...
`UNICODE`、`GBK`和`UTF8`是三种常见的字符编码标准,每种都有其特定的应用场景和特点。接下来,我们将深入探讨这些编码格式,以及如何利用C#语言开发一个用于查看这些编码的工具。 首先,`UNICODE`,全称为Unicode...
UTF-8在互联网上被广泛采用,因为它对英文字符使用单字节,与ASCII兼容,同时也能处理各种语言的文字。 "GBK批量转utf8(支持整个目录)"这个工具正是为了解决在处理多语言文件时遇到的编码问题。当你需要将一个...
对于英语和许多其他西欧语言,UTF-8使用单字节编码,与ASCII兼容;对于中文等多字节字符,UTF-8使用2或3个字节。 "Unicode/GBK/UTF8编码转换工具"的目标就是将输入的数字或中英文字符按照指定的编码格式转换成16...
GBK采用双字节编码,对于英文字符,GBK使用与ASCII相同的编码,但对于中文字符,GBK编码与UTF-8不同。 LabVIEW中的字符编码转换通常涉及字符串函数,如“转换编码”函数。在这个项目中,开发者可能使用了LabVIEW的...
GBK和UTF-8是两种常见的字符编码标准,它们在存储和传输汉字等多语言字符时各有特点。本篇文章将详细探讨GBK到UTF-8的转换函数以及相关知识点。 GBK(Great Chinese Character Set)编码是中国大陆广泛使用的汉字...
本文将深入探讨GBK与UTF-8的区别,以及如何在QT环境下进行源码的转换。 GBK,全称“汉字内码扩展规范”,是中国大陆地区广泛使用的汉字编码标准,它基于GB2312,并扩展了更多的字符,包括繁体字、少数民族文字等,...
因此,进行编码转换前,最好确认文件内容是否与目标编码兼容,或者在转换时选择一种能包容所有字符的编码(如UTF-8)。 在提供的压缩包文件“编码转换”中,可能包含了实现这种转换的工具或脚本。使用这些资源,...