`

ASCII、ANSI、UNICODE及UTF-8编码

阅读更多
  今天用notepad.exe另存文本文件的时候,发现下面的编码中,有个ANSI编码,文章题目中的几个编码在解决B/S程序乱码问题的时候,基本都了解了,但ANSI是什么东东?原来......

1.  ASCII和Ansi编码
    字符内码(charcter code)指的是用来代表字符的内码.读者在输入和存储文档时都要使用内码,内码分为
    单字节内码 -- Single-Byte character sets (SBCS),可以支持256个字符编码.
    双字节内码 -- Double-Byte character sets)(DBCS),可以支持65000个字符编码.
前者即为ASCII编码,后者对应ANSI.
至于简体中文编码GB2312,实际上它是ANSI的一个代码页936

2. Unicode
 如上,ANSI有很多代码页,使用不同代码页的内码无法在其他代码也正常显示,这就是为什么日文版/繁体中文版游戏无法在简体中文平台直接显示的原因.
    Unicode也是一种字符编码方法,不过它是由国际组织设计,可以容纳全世界所有语言文字的编码方案.它是一种2字节编码,能够提供65536个字符,这个数字是不够表示所有的字符的(汉语就有55000多字符),所以,通过一个代理对的机制来实现附加的917476个字符表示,以达到所有字符都具有唯一编码.

3.Unicode和BigEndianUnicode
    这两者只是存储顺序不同,如"A"的unicode编码为65 00
    其BigEndianUnicode编码为00 65

4.  UTF-8
    这是为传输而设计的编码,其系列还有UTF-7和UTF-16
    其中UTF-16和Unicode编码大致一样, UTF-8就是以8位为单元对Unicode进行编码。从Unicode到UTF-8的编码方式如下:
     Unicode编码(16进制)      UTF-8 字节流(二进制)
     0000 - 007F         0xxxxxxx
     0080 - 07FF         110xxxxx 10xxxxxx
     0800 - FFFF         1110xxxx 10xxxxxx 10xxxxxx

  例如“汉”字的Unicode编码是6C49。6C49在0800-FFFF之间,所以肯定要用3字节模板了:1110xxxx 10xxxxxx 10xxxxxx。将6C49写成二进制是:0110 110001 001001, 用这个比特流依次代替模板中的x,得到:11100110 10110001 10001001,即E6 B1 89。
分享到:
评论

相关推荐

    VB中ANSI转换成UTF-8

    本文将深入探讨如何在VB中将ANSI编码转换为UTF-8编码,以及在实际应用中的网络编程基础知识,特别是利用Winsock控件实现简单的聊天程序。 首先,理解ANSI和UTF-8的区别至关重要。ANSI编码,通常指的是基于特定区域...

    字符编码转换类,支持 ANSI、Unicode、Unicode big endian、UTF-8、UTF-8+Bom互相转换

    对于ASCII字符,UTF-8编码与ASCII相同,都是单字节。UTF-8的特殊之处在于它包含一个字节顺序标记(BOM),即UTF-8+BOM,但大多数情况下,UTF-8无BOM更常见。 在PHP中,进行字符编码转换可以使用内置函数,如`mb_...

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

    "UTF-8转ANSI文本文件转换器"就是这样一个工具,它能够帮助用户批量将UTF-8编码的文本文件转换为ANSI编码的文本文件。在此,我们将深入探讨UTF-8和ANSI编码的原理以及转换过程中涉及的关键知识点。 **一、UTF-8编码...

    TXT实现批量将ANSI转成为UTF-8编码的小软件

    本文主要探讨如何使用TXT实现批量将ANSI编码转换为UTF-8编码,这对于我们处理多语言文档或者确保文件在不同环境下正常显示至关重要。 首先,我们要理解ANSI和UTF-8这两种编码的区别。ANSI编码(也称为Windows默认...

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

    ### ANSI、Unicode与UTF-8编码转换及相关代码示例 #### 一、基本概念解析 在探讨ANSI、Unicode以及UTF-8之间的转换之前,我们首先需要了解这三种编码的基本概念及其应用场景。 - **ANSI编码**:ANSI(American ...

    CStdioFileEx(支持ANSI、UNICODE、UNICODE big endian、UTF-8编码的文本读取

    (包括ANSI、UNICODE、UNICODE big endian、UTF-8)格式的文本文件 */ //核心算法:CStdioFileEx继承自CStdioFile, 覆盖CStdioFile的 BOOL ReadString(CString& rString)方法, // 根据不同文件编码特征,寻找文件...

    Encode-Decode-ANSI-UTF-8.rar

    在这个主题中,我们将深入探讨"Encode-Decode-ANSI-UTF-8.rar"这个工具所涉及的关键概念,包括ANSI编码、UTF-8编码以及它们之间的转换。 首先,让我们了解ANSI编码。在Windows操作系统中,ANSI编码通常指的是...

    unicode、utf-8、ansi的故事及其相互转换.txt

    UTF-8 是 Unicode 的一种变长编码方式,它可以高效地编码 ASCII 字符,每个 ASCII 字符仅占用一个字节,而非 ASCII 字符则占用更多字节(最多可达四个字节)。这种特性使得 UTF-8 成为了互联网上最常用的编码格式。 ...

    将csv文件ANSI格式转UTF-8

    在标签"软件/插件"中,我们可以推断这是一个应用软件或可能是一个与文本编辑器、文件管理器集成的插件,它的功能就是帮助用户方便地将CSV文件的ANSI编码转换为UTF-8编码。这类工具的存在是为了简化用户的工作流程,...

    [C语言]字符串处理 - ANSI - Unicode - UTF8 转换

    3. UTF-8编码:UTF-8是Unicode的一个变种,使用可变长度的字节序列来表示字符。ASCII字符(7位)在UTF-8中仍用1个字节表示,其他Unicode字符使用2到4个字节。UTF-8的优点在于它向后兼容ASCII,且在Web上广泛使用。 ...

    各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解

    各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解

    封装ANSI,UNICODE,UTF8互相转换类

    - UTF-8到UNICODE:同样,这个过程是将UTF-8编码的字节流解码成Unicode代码点,从而得到宽字符字符串。 该转换类的使用方法可能包括提供待转换的字符串,指定输入和输出编码类型,然后调用相应的方法进行转换。这样...

    易语言判断UTF-8字符

    UTF-8是变长编码,它可以表示Unicode字符集中的所有字符,对于英文字符,UTF-8编码与ASCII编码相同,但对于中文和其他非英文字符,UTF-8会使用多个字节。 2. **`IsTextUTF8`函数的使用**:调用`IsTextUTF8`函数时,...

    PB的utf-8转换

    PB的utf-8转换,包括加码解码等等 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

    ANSI UNICODE UTF8转换

    3. UTF-8编码:是Unicode的一个变种,使用变长字节编码,从1到4个字节不等,根据字符的Unicode值来决定使用几个字节。UTF-8的优点在于它兼容ASCII,前128个Unicode字符与ASCII相同,只需要1个字节表示。同时,UTF-8...

    编码查询 各种文本转到 unicode utf-8 gb2312 编码 unicode utf-8 gb2312 编码转换到文字

    Unicode的实现方式之一就是UTF-8编码,这是一种变长编码,可以表示Unicode中的所有字符。UTF-8的特点是对于ASCII字符,它与ASCII编码完全兼容,且随着字符复杂性的增加,编码所占的字节数也相应增加。 GB2312是中国...

    易语言ANSI+UTF-8解码源码

    例如,如果你从网络上获取了一段用UTF-8编码的数据,但你的程序默认使用的是ANSI编码,那么你需要进行解码,将UTF-8转换为ANSI,反之亦然。 文件`content.txt`很可能是这个解码源码的一部分,或者包含了使用这些...

    ANSI+UTF-8解码.rar

    "易语言ANSI+UTF-8解码源码"这个文件名暗示了这是一个编程资源,提供了使用易语言进行ANSI和UTF-8编码解码的源代码。易语言是中国自主研发的一种简单易学的编程语言,它的目标是让编程变得简单。源码可能包含了函数...

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

    转换过程类似于`MBToUTF8`,但最终的输出是Unicode编码而不是UTF-8编码: - 使用`MultiByteToWideChar`将多字节字符串转换为宽字符字符串。 由于这里的转换只涉及两种编码格式(多字节与Unicode),因此实现...

Global site tag (gtag.js) - Google Analytics