Unicode字符集
2016-03-27 18:58
204 查看
1、字符集演变历史
Ascii:
计算机最初的设计是使用一个字节来表示一个字符,0-127用来表示字母和字符,128-255用于扩展。
GBK:
由于存在很多使用象形文字的国家(如中国),256个字符根本不够用,常用的汉字就要6千多个,于是我国提出了中文编码标准GBK 。
Unicode:
由于各国人民都使用自己的字符编码集,交流起开很不方便,于是 ISO (国际标谁化组织)提出了统一的标准Unicode;Unicode使用两个字节表示字符;为了兼容Ascii字符,原有的Ascii字符低字节不变,高字节取0。Unicode的实现有Utf-8
Utf-16 Utf-32等
Utf-8:
Utf-8是对Unicode实现,是目前网络传输使用的字符集。
UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度,当字符在ASCII码的范围时,就用一个字节表示,保留了ASCII字符一个字节的编码做为它的一部分,注意的是unicode一个中文字符占2个字节,而UTF-8一个中文字符占3个字节)。从unicode到uft-8并不是直接的对应,而是要过一些算法和规则来转换。
Unicode符号范围 | UTF-8编码方式
(十六进制) | (二进制)
—————————————————————–
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
2、Windows中的字符编码情况
中文简体版本的windows默认使用Gbk(936)字符集,可以使用chcp命令查看当前字符集
![](http://img.blog.csdn.net/20160327185837519?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
VC中char字符串默认使用ANSI(GBK)字符集,wchar_t字符串默认使用原始的Unicode字符集
记事本保存时可以选择编码,windows的Utf-8是默认带Bom的
参考资料:
https://en.wikipedia.org/wiki/ASCII
https://www.zhihu.com/question/23374078
Ascii:
计算机最初的设计是使用一个字节来表示一个字符,0-127用来表示字母和字符,128-255用于扩展。
GBK:
由于存在很多使用象形文字的国家(如中国),256个字符根本不够用,常用的汉字就要6千多个,于是我国提出了中文编码标准GBK 。
Unicode:
由于各国人民都使用自己的字符编码集,交流起开很不方便,于是 ISO (国际标谁化组织)提出了统一的标准Unicode;Unicode使用两个字节表示字符;为了兼容Ascii字符,原有的Ascii字符低字节不变,高字节取0。Unicode的实现有Utf-8
Utf-16 Utf-32等
Utf-8:
Utf-8是对Unicode实现,是目前网络传输使用的字符集。
UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度,当字符在ASCII码的范围时,就用一个字节表示,保留了ASCII字符一个字节的编码做为它的一部分,注意的是unicode一个中文字符占2个字节,而UTF-8一个中文字符占3个字节)。从unicode到uft-8并不是直接的对应,而是要过一些算法和规则来转换。
Unicode符号范围 | UTF-8编码方式
(十六进制) | (二进制)
—————————————————————–
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
2、Windows中的字符编码情况
中文简体版本的windows默认使用Gbk(936)字符集,可以使用chcp命令查看当前字符集
VC中char字符串默认使用ANSI(GBK)字符集,wchar_t字符串默认使用原始的Unicode字符集
记事本保存时可以选择编码,windows的Utf-8是默认带Bom的
参考资料:
https://en.wikipedia.org/wiki/ASCII
https://www.zhihu.com/question/23374078
相关文章推荐
- CodeForces 332B Maximum Absurdity
- CentOS开机简要流程
- hdu2795 Billboard 线段树单点更新区间最值
- 20159318《网络攻防技术与实践》第4周学习总结
- codeforces 652D Nested Segments 离散化+树状数组
- 数组02
- 幸福其实很简单
- 第58课:使用Java和Scala在IDE中开发DataFrame实战学习笔记
- Lintcode 合并两个排序的链表
- CentOS7下JDK 安装错误 could not find libjava.so
- JVMGC——垃圾收集器的分类
- onWindowFoucusedChanged
- Android studio遇到在真机运行时出现adb not respond if you would like to retry问题解决方法
- Uva299——Train Swapping
- resin 4.0数据源的配置
- 环形数组最大子数组之和
- hdu5652
- cornerStone查看日志出错:Could not contact repository to read the latest log entries
- 数据库的基本操作
- JAVA基础总结(1)