[160909][软件开发]浅谈计算机中的字符编码问题
2016-09-09 15:20
357 查看
我们常见的编码有三类,一是ASCII编码,二是GB系列编码,三是Unicode系列编码。
ASCII编码只能用来存储英文,GB系列编码是我国的国标编码,用来存储汉字,分为GB2312,GBK,GB18030,基本都能向前兼容,其中GBK是目前最通用的,今天重点说一下Unicode编码问题。
Unicode编码是ISO国际标准化组织为了解决世界上各个国家和地区编码不同二设计的一个全世界通用的编码格式,不过他只规定了字符的编码,却没有规定字符以何种方式存储或者传输。所以UTF系列编码规定了Unicode编码的存储和传输方式。
目前最常用的UTF编码分为3种,UTF-8,UTF-16和UTF-32,我们知道计算机是以8位为一个字节来存储数据的,而UTF-16,UTF-32分别用2字节和4字节来表示一个字符,所以这里就涉及到字节的存储顺序,是低位在前还是高位在前,这样,BOM就产生了。
BOM是文本文件开头的一个特殊标记,用一组特殊数字来标记文本文件的字节序。虽然UTF-8字节顺序是固定的,但为了兼容UTF-16和UTF-32也规定了UTF-8的BOM,用于标记UTF-8编码。不过UTF-8的BOM在不同平台的规定不同,要小心使用。BOM规定如下。
UTF-8 EF BB BF
UTF-16(LE) FF FE
UTF-16(BE) FEFF
UTF-32(LE) FF FE 00 00
UTF-32(BE) 00 00 FE FF
另外要说一下我们常用的 Windows系统下记事本的几种编码类型
ANSI:对于不同语言平台,实现的内容不用,如果使用简体中文系统的话就是GBK编码
UTF-8:Windows使用的UTF-8是带BOM的UTF-8
Unicode:Winodws下所谓的Unicode其实是UTF-16LE
另外说点无关的话题,Windows下的换行符是\r\n,Linux,Unix,macOS下的换行符都是\n
ASCII编码只能用来存储英文,GB系列编码是我国的国标编码,用来存储汉字,分为GB2312,GBK,GB18030,基本都能向前兼容,其中GBK是目前最通用的,今天重点说一下Unicode编码问题。
Unicode编码是ISO国际标准化组织为了解决世界上各个国家和地区编码不同二设计的一个全世界通用的编码格式,不过他只规定了字符的编码,却没有规定字符以何种方式存储或者传输。所以UTF系列编码规定了Unicode编码的存储和传输方式。
目前最常用的UTF编码分为3种,UTF-8,UTF-16和UTF-32,我们知道计算机是以8位为一个字节来存储数据的,而UTF-16,UTF-32分别用2字节和4字节来表示一个字符,所以这里就涉及到字节的存储顺序,是低位在前还是高位在前,这样,BOM就产生了。
BOM是文本文件开头的一个特殊标记,用一组特殊数字来标记文本文件的字节序。虽然UTF-8字节顺序是固定的,但为了兼容UTF-16和UTF-32也规定了UTF-8的BOM,用于标记UTF-8编码。不过UTF-8的BOM在不同平台的规定不同,要小心使用。BOM规定如下。
UTF-8 EF BB BF
UTF-16(LE) FF FE
UTF-16(BE) FEFF
UTF-32(LE) FF FE 00 00
UTF-32(BE) 00 00 FE FF
另外要说一下我们常用的 Windows系统下记事本的几种编码类型
ANSI:对于不同语言平台,实现的内容不用,如果使用简体中文系统的话就是GBK编码
UTF-8:Windows使用的UTF-8是带BOM的UTF-8
Unicode:Winodws下所谓的Unicode其实是UTF-16LE
另外说点无关的话题,Windows下的换行符是\r\n,Linux,Unix,macOS下的换行符都是\n
相关文章推荐
- 浅谈软件开发企业绩效管理中的问题与对策(二、管理理论篇)
- 浅谈软件开发企业绩效管理中的问题与对策(四、绩效方案实例)
- 浅谈软件开发企业绩效管理中的问题与对策(一、问题篇)
- 浅谈软件开发企业绩效管理中的问题与对策(三、常见问题)
- 浅谈软件开发工具的成本核算问题
- 初学软件开发可能会遇到了一些问题...
- 软件产品发布后出现重大质量问题,谁来负主要责任?开发人员还是测试人员?
- 计算机软件产品开发文件编制指南
- 计算机软件产品开发文件编制指南下载地址
- 我的计算机-软件开发之路(1)
- 中国小型软件公司软件开发存在的一些问题
- 计算机软件开发文档编写指南
- "善守"之道--谈软件开发中的监错/防错设计和异常处理机制问题——柯化成
- 计算机软件产品开发文件编制指南 GB 8567-88
- 通用多功能计算机监控系统测试软件的设计与开发
- 软件开发复用问题的若干思考
- 软件开发项目进度控制浅谈[转]
- 软件开发的过程中关键路径问题
- 跨平台C++软件开发中,由于不同操作系统对Unicode的支持差异,而导致的一些问题及解决方案。
- 小议手机软件平台开发(4) - 政治问题