编码总结,以及对BOM的理解】的更多相关文章

一.前言 在跨平台.跨操作系统或者跨区域之间,经常会涉及到编码的问题,因为前段时间在项目中,遇到了因为编码而产生乱码的问题,以前对编码也是一知半解,所以决定对编码有一个更为深入的了解,因此才有了这篇自己对编码总结的文章. 二.常见编码 1.ASCII:American Standard Code for Information Interchange(美国信息交换标准代码)的缩写,表示所有的大写和小写字母,数字0 到9.标点符号, 以及在美式英语中使用的特殊控制字符,这应该是我们最先接触的编码.…
原作者:阮一峰(ruanyifeng.com),现重新整理发布,感谢原作者的无私分享. 1.引言 今天中午,我突然想搞清楚 Unicode 和 UTF-8 之间的关系,就开始查资料. 这个问题比我想象的复杂,午饭后一直看到晚上9点,才算初步搞清楚. 下面就是我的总结,主要用来整理自己的思路.我尽量写得通俗易懂,希望能对其他朋友有用.毕竟,字符编码是计算机技术的基石,对于程序员来说尤其重要,字符编码的知识是必须要懂的. 学习交流: - 即时通讯开发交流3群:185926912[推荐] - 移动端I…
https://www.cnblogs.com/zizifn/p/4716712.html 从字节理解Unicode(UTF8/UTF16) 如果你不知道或者不了解什么是Unicode/UTF8/UTF16,请详细阅读这篇文章(这也是这篇博文的先决条件): 学点编码知识又不会死:Unicode的流言终结者和编码大揭秘 但是如果你看完以上文章后,疑惑为什么一个Unicode:0x4F60(对应汉字是"你")会在UTF8下占用3个字节的存储空间. 按照排列组合2个字节完全可以存储多数uni…
ANSI(American National Standards Institute,美国国家标准学会)ANSI编码标准是指所有从基本ASCII码基础上发展起来的编码标准,比如扩展的ASCII码(128~255占用).GB2312.GBK.GB18030.BIG5等.每种编码在ANSI标准中都为一页,比如encoding.gb2312页代表GB2312字符集编码ASCII(American Standard Code for Information Interchange,美国信息交换标准码)码…
编码和解码是针对数据而言的,数据能干什么呢?无非就是用来显示,储存和传输的: 储存和传输数据当然是希望数据越小越好,所以发明了utf-8这种数据编码显示:它智能将英文用一个字节表示,欧洲的字符用两个字节表示,中文用三个字节表示. 数据显示的话不需要考虑数据的大小呢!因此统统采用国际标准的unicode标准来显示,每个字符都占用两个字节.无论是中文还是英文还是其他什么国家的文字. 数据你想显示,大小无所谓,那就用国际标准的呗,也就是unicode, 所以说你在打字时,屏幕上显示的都是用unicod…
BOM提供了很多对象,用于访问浏览器的功能,这些功能与网页内容无关 BOM的核心对象时window,她表示浏览器的一个实例 window的双重角色   1.JS访问浏览器窗口的一个接口  2.ECMAScript规定的Global对象(浏览器环境下),也就是说,在网页中定义的任何一个对象,变量,函数,都是以window为根对象 在JS中,不存在独立的函数,所有的函数都一定是某个对象的方法 定义全局变量和在window对象上定义属性的区别:全局变量的定义无法用delete删除…
Unicode规范中的BOM Unicode规范中有一个BOM的概念.BOM——Byte Order Mark,就是字节序标记.在这里找到一段关于BOM的说明: 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF.而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中.UCS规范建议我们在传输字节流前,先传输字符"ZERO WIDTH NO-BREAK SPACE".这样如果接收者收到FEFF,就表明这…
对于Windows记事本: ANSI :GB2312 java中应使用GBK解码 Unicode :有签名的UTF-16LE java中应使用UTF-16解码 Unicode big endian :有签名的UTF-16BE java中应使用UTF-16解码 UTF-8 :有签名的UTF-8 java中只能手动去掉签名了再用UTF-8解码了 对于java程序的解码: GBK :GBK编码可以兼容GB2312,因此用GBK处理GBK.GB2312两种编码 UTF-8 :无签名的UTF-8 UTF-…
py编码骨灰级总结 思路: python执行py文件步骤--py2/3定义变量时unicode差异 1,py2 py3执行py文件的步骤 2,py2 定义变量x='mao' 1.x='mao', # 以文件头编码,因此出现内存中不一定全是unicode 2,x=u'mao' # 等同于 x='mao'.decode('gbk'),从这里可以看出,站在unicode角度想问题 1,unicode在内存中 2,unicode内存存在硬盘,需encode,因此unicode可以encode到任意编码…