`
happmaoo
  • 浏览: 4333912 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

关于编码: ascii(ansi), gb-2312, unicode, utf8

 
阅读更多
一、
1.
最早,只有ascii码,美国使用。

1个字节8位,只用了后7位(0-127),表示了英语中一般的字符以及数字、字母;


2.
计算机普及,中国对ascii码进行扩展GB2312,两个字节表示一个汉字(原ascii码的英文继续由1个字节表示);

注意:如果说汉字的ascii码,其实指的是gb2312

3.
越来越多的国家都使用计算机,提出一套支持地球上所有文化、字母、字符的编码Unicode:
2个字节表示一个字符(原ascii码的英文也需要两个字节,高位全为0);

识别unicode的方法就是在ultraedit的16进制编辑模式下查看起编码一般以FF FE开头的

4.
后来随着网络的普及,在网络上传输数据,出现众多的UTF(UCS Transfer Format)标准,其中utf8每次8个位传输数据。

对于英文其utf8的编码与ascii一样;
对于汉字通常utf8编码为3个字节;


二、
注意:
对于中文来讲,gb2312和unicode都是2个字节表示中文一个汉字,但编码完全不一样,且无规律可循,需要查表。
当然!根据下面的方法可以轻松知道汉字的gb2312和unicode分别为什么

三、
unicode与utf8的转换规则:

Unicode
UTF-8

0000-007F
0xxxxxxx

0080-07FF
110xxxxx10xxxxxx

0800-FFFF
1110xxxx10xxxxxx10xxxxxx

因此
对于英文来讲,由于其unicode高位全为0属于0000-007F段,因此其utf8对应0xxxxxxx ,即还是其ascii码;
中文,utf8则有可能为2个字节或3个字节;


四、
ascii, gb2312, unicode, utf8各个特点:

如果表示英文:

ascii码1个英文字符1个字节;
<使用记事本输入hello,save as 为ansi码格式;再使用ultraedit打开,选择16进制编辑模式,可以看到68,65,6c,6c,6f 很明显1个字符1个字节表示>

unicode码1个英文字符2个字节;
<使用记事本输入hello,save as 为unicode码格式;再使用ultraedit打开,选择16进制编辑模式,可以看到
FF FE 68 00, 65 00, 6c 00, 6c 00, 6f 00

最高2个字节FF FE高位在后,如果为FE FF则表示高位在前
代表后面1个字符2个字节表示,且高字节位全为0,低字节位和ansi码一样>


如果表示中文:

gb2312码1个中文字符2个字节;
<使用记事本输入“汉”,save as 为ansi码格式(其实也就是gb2312);再使用ultraedit打开,选择16进制编辑模式,可以看到BA BA 很明显1个字符2个字节表示>

unicode码1个中文字符2个字节;(但与gb2312完全不同,无规律可循,只能查表)
<使用记事本输入“汉”,save as 为unicode码格式;再使用ultraedit打开,选择16进制编辑模式,可以看到
FF FE 49 6c
最高2个字节FF FE高位在后,如果为FE FF则表示高位在前
代表后面1个字符2个字节表示,可以看到与gb2312的BABA完全不一样>

五、
实际使用过程中,这四种编码有时会混在一起:
实际来讲中文是没有ascii码的,因为1个字节不够表示中文,如果讲中文保存为ascii码格式其实指的是gb2312;
有事也将unicode与utf8相混淆,指代同一个东西,因为两者可以互相转化。

六、
utf8编码格式的获取:

可以根据unicode到utf8的转换规则来计算;(即实现了utf16To8, utf8To16);

可以使用ultraedit的编码转换功能:
首先注意:
使用记事本编辑并选择保存save as为utf8,但到ultraedit中打开,其实都是unicode格式,而不是真正的utf8;
需要转换为utf8可以
选择“文件”-“转换”:常用的从上往下(对于汉字来讲这里的ascii就是gb2312)

ascii转unicode
utf8转unicode

unicode转ascii
utf8转ascii

ascii转utf8 (其实是ascii转unicode)
unicode/utf8转utf8 (其实unicode并没有变)
unicode/ascii/utf8转utf8 (实现真正的unicode或ascii转为utf8)


七、
补充阅读:

(补充阅读)关于编码: ascii(ansi), gb-2312, unicode, utf8

中文字符集与字符编码的基础知识

Ansi,UTF8,Unicode,ASCII编码

判断一个字符是否为汉字

大话字符编码

分享到:
评论

相关推荐

    关于编码 ascii(ansi), gb-2312, unicode, utf8

    关于编码 ascii(ansi), gb-2312, unicode, utf8

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

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

    编码批量转换工具

    比如utf8转gbk,gb2312转utf8,ansi转utf8,utf8 unicode 转换,utf8转换gb2312,utf16、utf32、utf8编码转换,gbk转换utf8,utf8 ascii转换。 2 强大正则表达式支持字符编码转换软件 是唯一同时支持用正则表达式匹配和...

    Qt中的字符编码转换:UTF8、Unicode、GBK、ASCII、16进制字符、16进制数值

    Qt字符转换,串口接收数据转为中文显示可用。Qt中的字符编码转换:UTF8、Unicode、GBK、ASCII、16进制字符、16进制数值

    PB的utf-8转换

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

    计算机编码与Unicode(PPT课件)

    这个PPT课件介绍了Unicode和字符编码相关的知识。丰富生动的图片和讲解使您能快速地掌握Unicode编码相关的知识,是不可多得的Unicode相关的PPT教程。... Unicode存储编码——UTF 10. 字节顺序与BOM

    Ruby 与编码

    Ruby 与编码 常见问题 * 乱码的问题 * Ruby 中 Unable to convert "\x89" from ASCII-8BIT to UTF8 *Incompatible character encodings: ASCII- 8BIT and UTF-8

    批量字符编码转换工具 20070709

    比如utf8转gbk,gb2312转utf8,ansi转utf8,utf8 unicode 转换,utf8转换gb2312,utf16、utf32、utf8编码转换,gbk转换utf8,utf8 ascii转换。 2 强大正则表达式支持字符编码转换软件 是唯一同时支持用正则表达式匹配和...

    超详细的字符编码教程

    2.4.3. Unicode字符编码所对应的存储和交换标准:UTF-8, UTF-16, UTF-32 2.4.3.1. UTF-8 2.4.3.2. Unicode与UTF-8之间的转换 2.4.3.2.1. 关于UTF-8的BOM:“EF BB BF” 2.5. 代码页Code Page 2.5.1. 什么是代码页...

    UNICODE,UTF8,ANSI 等编码规范详解

    UNICODE,UTF8,ANSI 等编码规范详解。短小精悍,概括性强,容易理解。查过很多资料后的总结,欢迎下载。

    编码转换类1.2版模块源码

    本模块支持GBK、UNICODE、UTF-8三种编码之间的互相转换,不依赖系统Api,通过查表和编码算法直接得出转码结果,支持多线程调用。编码小科普。GBK编码:1-2个字节,包含GB2312、ASCII、BIG5,注意:同一个繁体字在GBK...

    C++ gbk转unicode、ansi转unicode,字符串查找、切割、转十六进制、转二进制、转义,随机数等数据处理类源码

    1数据转换:ANSI等编码、UTF8编码、UTF16编码(实际为Unicode编码)、TCHAR互转,可以先获取转换出的数据在存储时所需的大小 2字符串查找:正向查找、逆向查找、指定偏移查找 3字符串切割:正向分割、逆向分割、指定...

    类似文本文件编码处理工具

    类似文本文件编码处理工具,其实现了UTF-8、UTF-7、Unicode、ASCII、GB2312(简体中文)、BIG5 (繁体中文)之间的相互转换,以及文件编码UTF-8、UTF-7、Unicode、ASCII、GB2312(简体中文)、BIG5 (繁体中文)、ANSI检测

    文本文件编码探查.zip

    4)UTF-16LE',这是文件中带有UTF-16LE前导标志的标准的UNIcode编码(小端) 5)UTF-16BE',这是文件中带有UTF-16BE前导标志的大端UNIcode编码 6)UTF-8BOM'这是文件中带有BOM前导标志的UTF8编码 软件运行时,可以...

    易语言-编码转换类1.2版模块

    本模块支持GBK、UNICODE、UTF-8三种编码之间的互相转换,不依赖系统Api,通过查表和编码算法直接得出转码结果,支持多线程调用。 编码小科普 GBK编码:1-2个字节,包含GB2312、ASCII、BIG5,注意:同一个繁体字在GBK...

    ascii-flags:ASCII艺术中的迷你国旗(3x1个字符)

    unicode (在UTF-8中)使用Unicode字形来改善某些形状。 并非所有标志都可用。 一行只有三个字符,一个像素列中只能显示两种不同的颜色,这使得某些标志(例如德国和荷兰)无法显示。 运行show.sh脚本以了解它在...

    易语言调用API实现编码转换

    易语言调用API实现编码转换源码,调用API实现编码转换,ANSI转UNICODE,UNICODE转UTF8

    TextSearch 1.4

    主要目的:在text编码(Unicode, UTF, ANSI, ASCII等等)的文件内,查找某一字段(多国语言支持)。 主要功能: 1. 支持中英文的界面显示 2. 自定义所要查找的文件类型 3. 自定义不需要搜索的文件夹 4. 可包含子文件夹...

    Text Search,文字搜索

    主要目的:在text编码(Unicode, UTF, ANSI, ASCII等等)的文件内,查找某一字段(多国语言支持)。 主要功能: 1. 支持中英文的界面显示 2. 自定义所要查找的文件类型 3. 自定义不需要搜索的文件夹 4. 可包含子文件夹...

    TextSearch 1.5

    主要目的:在text编码(Unicode, UTF, ANSI, ASCII等等)的文件内,查找某一字段(多国语言支持)。 主要功能: 1. 支持中英文的界面显示 2. 自定义所要查找的文件类型 3. 自定义不需要搜索的文件夹 4. 可包含子文件夹...

Global site tag (gtag.js) - Google Analytics