一、
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
110xxxxx 10xxxxxx
0800 - FFFF
1110xxxx 10xxxxxx 10xxxxxx
因此
对于英文来讲,由于其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-Unicode和UTF-8 字符编码笔记:ASCII-Unicode和UTF-8 字符编码笔记:ASCII-Unicode和UTF-8
详细描述了:字符编码ASCII、GB2312、Unicode、UTF-8区别。
介绍字符编码:ASCII,Unicode和UTF-8
今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。 结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。 下面就是我的笔记,主要用来整理自己的思路。..............
PB的utf-8转换,包括加码解码等等 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
ASCII、Unicode、GBK和UTF-8字符编码的区别联系
字符编码问题(ASCII、UNICODE、UTF-8 )
字符编码知识:Unicode、UTF-8、ASCII、GB2312等编码之间是如何转换的?(....rar
字符编码笔记:ASCII,Unicode和UTF-8[参照].pdf
ASCII/GB2312/UTF-8/Unicode编码 字符串与字节转换查看源码。采用Visual Studio 2008开发,使用C# Windows Form编写,代码简单易懂。 输入:CSDN-全球最大中文IT社区。 选择:GB2312 结果:4353444E2DC8ABC7F2D7EEB...
这是一篇写的非常好的故事,带你了解计算机字符编码的前世今生。让人记忆非常深刻,也拿来做过课堂演讲。——《一个故事带你搞懂ASCII-Unicode字符集和UTF-8编码》
Qt字符转换,串口接收数据转为中文显示可用。Qt中的字符编码转换:UTF8、Unicode、GBK、ASCII、16进制字符、16进制数值
3 源文件编码选择65001 utf-8 4 目标文件编码选择936 gb2312 5 点选"要转换的文件",输入正则表达式: \\.php|\\.html 6 点选"要排除的文件",输入正则表达式: \\test 点击"开始转换"字符编码转换工具就开始转换了,...
该软件能快速查询中英文字符的ASCII、区位码、GB2312 码、Big5 码、GBK 内码、Unicode 码、UTF-8 码和 UTF-16 码。体积小、效率高、使用方便、批量转换、即输即得和多进制显示等。 V1.1 更新说明: 优化了部分...
下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识
一、介绍 UTF-8 是一种在web应用中经常使用的一种 Unicode 字符的编码方式,使用 UTF-8 的好处在于它是一种变长的编码方式,对于 ANSII 码编码长度为1个字节,这样的话在传输大量 ASCII 字符集的网页时,可以大量...
该软件能快速查询中英文字符的ASCII、区位码、GB2312 码、Big5 码、GBK 内码、Unicode 码、UTF-8 码和 UTF-16 码。体积小、效率高、使用方便、批量转换、即输即得和多进制显示等。 V1.1 更新说明: 优化了部分...
该软件能快速查询中英文字符的ASCII、区位码、GB2312 码、Big5 码、GBK 内码、Unicode 码、UTF-8 码和 UTF-16 码。体积小、效率高、使用方便、批量转换、即输即得和多进制显示等。 V1.1 更新说明: 优化了部分...
utf16<=> utf8 <=> ascii <=>unicode 所有代码都已经经过验证。而且里面也有相应的例子。 所有的编码格式进行转换,windows平台。