曾几何时,多次研究过字符编码的问题,每次都是了解到大部分,以至于出现新的编码问题时还不得不去重新寻找资料。在这里我重新完整的整理一遍,简明扼要,分享出来也方便日后查看。
1.常见的字符编码,按照轻到重介绍
1-1.ASCII
最基本的编码,西文字符集的国际标准,有7位(128标准字符)和8位(128标准字符+128扩充字符)两种。
1-2.GB2312
GB开头的都是国标码,也就是中国制定的编码。简体中文字符集,2字节(16位)存储,7000多个简体汉字字符。
1-3.GBK
对GB2312的扩展,完全兼容GB2312,多加了繁体字,2字节(16位)存储,20000多个汉字字符。
1-4.GB18030
对GBK的扩展,良好兼容GBK和GB2312,多加了少数名族文字,变长编码,有1、2、4字节的。
1-5.ISO-8859-1
国际标准化组织制定的,又称Latin-1或西欧语言,当然还有ISO-8859-2(Latin-2或叫中欧语言)。。。。。。单字节(8位),不支持中文。这下知道为什
么eclipse的properties文件默认ISO-8859-1不能保存中文了吧,都要设置成GBK或者UTF-8才行。
1-6.ANSI
这个最诡异了,不同国家和地区编码有不同标准,在英文操作系统下代表ASCII,在简体中文操作系统下代表GB2312,在日文操作系统下代表JIS。。。。。。可
以理解为本地编码,或者严格来说不算是编码,是个代号。存储单元嘛当然是变动的了,理解为指向某种编码的指针也可以。
1-7.UNICODE
这个编码是真正的实现了世界字符的一统。固定长度(4字节,在某个国际标准下,某个国际标准是2字节),世界上每一种字符都对应着一个Unicode编码。弊端也显而易
见,存储单字节的英文浪费空间,效率不高。有时候我们看到一些编辑器转码后产生\ua2b3\u43ab就是转换成Unicode的方式表示,\u是声明16进制的意思,后面跟
上4个16进制的数,如a2b3。做web国际化时候这个没少解除吧。
1-8.UTF-8
简单说,就是为了解决UNICODE的弊端出现了可变长度的UTF-8。
2.各种操作系统默认编码
先声明,部分操作系统是可以更改系统编码的,如Linux。这里列举的是最常规的情况。
Linux------UTF-8(你喜欢装中文版自己面壁去)
P-Windows3.2和苹果OS就是以GB2312为基本汉字编码
Windows95/98以及以上则以GBK为基本汉字编码,记得cmd下使用mysql必须执行的setnamesgbk么
3.关于回车换行(\r\n)
这个还是挺让人疑惑的。
\r代表回车,就是把光标移动到行首
\n代表换行,就是光标移动到下一行
也许你钻牛角尖,换行不就行了,为什么还要回车?早起的OS很傻,你要是换行不回车,光标往下移动一行,但是不会置于行首。这个OS主要就是指WINDOWS,所以
在WINDOWS里面这个传统延续到今天。当然,不同的OS有不同的表现,有映象看过一份材料,如果你要真正“换行”,如下:
WINDOWS--------\r\n(回车换行)
LINUX--------------\n(只有换行,没有回车)
MACOSX---------\r(只有回车,没有换行)
MACOSX应该不叫IOS吧?高手指点咯
以上细微区别在用vim处理文本的时候要特别小心,尤其是使用了正则表达式。
分享到:
相关推荐
常见网络命令精解常见网络命令精解常见网络命令精解常见网络命令精解常见网络命令精解
Windows精解Windows精解Windows精解Windows精解Windows精解Windows精解Windows精解Windows精解
plsql精解plsql精解plsql精解plsql精解
360安全浏览器常见问题精解.docx
设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计...设计模式精解设计模式精解设计模式精解设计模式精解设计模式精解设计模式精解设计模式精解
OpenCV算法精解-代码
非常有用的网络命令大全,讲解很详细。。。。。。。。。。。。。。。。。。。。
算法精解 C语言描述 算法精解 C语言描述 算法精解 C语言描述
OpenCV算法精解代码 OpenCV算法精解代码 OpenCV算法精解代码
设计模式精解 各位下载完了别忘了回复阿,好东西啊
Delphi数据库开发经典实例精解 经典实例精解
Bootstrap开发精解 原理 技术 工具及最佳实践 随书代码
减速器设计实例精解.zip
JavaScript 编程精解 中文第三版 JavaScript 编程精解 中文第三版
JSP软件工程案例精解 JSP软件工程案例精解
3000物理习题精解,3000物理习题精解,3000物理习题精解
《Android应用开发范例精解》通过通俗易懂的开发实例及项目案例,详细介绍了Android应用开发的知识体系及实用开发技术。 《Android应用开发范例精解》共14章,分为3篇。第1篇为基础篇,涵盖Android背景及开发环境和...
linux常用命令精解 磁盘管理与维护: Df:显示磁盘的相关信息 -a或-all:包含全部的文件系统 --black-size=<区块大小>:以指定的区块大小来显示区块数目 -h或—human-readable:以可读性较高的方式来显示信息 -H或—...
Qt及Qt Quick开发实战精解,Qt及Qt Quick开发实战精解
《算法精解:C语言描述》是数据结构和算法领域的经典之作,十余年来,畅销不衰!全书共分为三部分:部分首先介绍了数据结构和算法的概念,以及使用它们的原因和意义,然后讲解了数据结构和算法中最常用的技术——...