所有程序必须掌握的字符集和编码技术
2007-04-16 00:50
323 查看
好久没有来看看自己的博客了, 最近再看一些书,很有启发;写了一些摘要,希望对大家有帮助;;
以前8位pc上使用ACSII编码表示各个字符;它能够用32 到 127 之间的数字表示各个字符.(当时的字符集是无重音字母);; 空格编码:32 字母A 编码 65;
这种编码能够方便的用七个二进制位来表示;; 因有8位的空间, 我们可以把128----255的编码用作其它的用途;;不同的地方有不同的使用用途;;
亚洲国家的字符表有成千上万个字符,无法用一个字节编码表示; 就引入了DBCS双字节系统; 这个字符系统将一些字符存储位一个字节, 而让另外一些占据两个字节;
注意:: 一个字节就是一个字符,以及一个字符就是8个二进制位,,是没有移植性的;;;
Unicode字符集:: 它试图包括地球上的所有合理的文字体系;;
Unicode组织为各种字母表中的每个理想化的字母分配一个神奇的符号U+067.后面这些数字是16进制的;; Unicode能够定义的字母个数没什么限制,其实实际用的已经远超出65536个;; 可见并不是每个Unicode字母都能真正挤压成两个字节;;
编码知识;;
Unicode有几种编码方式;传统的是Ucs-2或UTF-16;;有高低模式位;;全部2字节编码;;;
另一种UTF-8模式,采用1字节,2字节,3自己,甚至6字节编码;;
utd—7用7位表示一个字符,高位是0;;
不管用什么编码方案来来编码Unicode字符串”Hello”(U+0048; U+0065; U+006c; U+006c; U+006f),只要抓住一点:::字母可能是不出现的,如果试图使用的编码方案中没有相应的Unicode代码点的等价内容;通常会显示一个小问号”?”;或者更为先进一点显示一个方框;;
传统的编码方式不下几百种,,不过它们仅仅能正确的存放一些代码点, 将所有的其它代码点转变成问号,流行的英语文本编码方案有 Windows-152与ISO-8859-1即Latin-1(同样对任何西欧语种都有用);;不过如果试图用这种编码方试来存放俄语&西伯莱语字母;那么得到结果将是一簇问号;;UTF 7,8,16与32都能正确的存放任何代码点的良性特性;;
极其重要的一件事:: 有一个字符, 如果不知道它所使用的编码方案试毫无意义的;
不用遐想,纯文本就是ASCII;;
如果再内存,文件,电子邮件中有一个字符串,那么应该知道它使用的是什么编码方案,否则,就不能正确的显示或解释给用户
以前8位pc上使用ACSII编码表示各个字符;它能够用32 到 127 之间的数字表示各个字符.(当时的字符集是无重音字母);; 空格编码:32 字母A 编码 65;
这种编码能够方便的用七个二进制位来表示;; 因有8位的空间, 我们可以把128----255的编码用作其它的用途;;不同的地方有不同的使用用途;;
亚洲国家的字符表有成千上万个字符,无法用一个字节编码表示; 就引入了DBCS双字节系统; 这个字符系统将一些字符存储位一个字节, 而让另外一些占据两个字节;
注意:: 一个字节就是一个字符,以及一个字符就是8个二进制位,,是没有移植性的;;;
Unicode字符集:: 它试图包括地球上的所有合理的文字体系;;
Unicode组织为各种字母表中的每个理想化的字母分配一个神奇的符号U+067.后面这些数字是16进制的;; Unicode能够定义的字母个数没什么限制,其实实际用的已经远超出65536个;; 可见并不是每个Unicode字母都能真正挤压成两个字节;;
编码知识;;
Unicode有几种编码方式;传统的是Ucs-2或UTF-16;;有高低模式位;;全部2字节编码;;;
另一种UTF-8模式,采用1字节,2字节,3自己,甚至6字节编码;;
utd—7用7位表示一个字符,高位是0;;
不管用什么编码方案来来编码Unicode字符串”Hello”(U+0048; U+0065; U+006c; U+006c; U+006f),只要抓住一点:::字母可能是不出现的,如果试图使用的编码方案中没有相应的Unicode代码点的等价内容;通常会显示一个小问号”?”;或者更为先进一点显示一个方框;;
传统的编码方式不下几百种,,不过它们仅仅能正确的存放一些代码点, 将所有的其它代码点转变成问号,流行的英语文本编码方案有 Windows-152与ISO-8859-1即Latin-1(同样对任何西欧语种都有用);;不过如果试图用这种编码方试来存放俄语&西伯莱语字母;那么得到结果将是一簇问号;;UTF 7,8,16与32都能正确的存放任何代码点的良性特性;;
极其重要的一件事:: 有一个字符, 如果不知道它所使用的编码方案试毫无意义的;
不用遐想,纯文本就是ASCII;;
如果再内存,文件,电子邮件中有一个字符串,那么应该知道它使用的是什么编码方案,否则,就不能正确的显示或解释给用户
相关文章推荐
- 每一个程序员必须掌握的知识,字符集与字符编码.
- 2018要跳槽阿里,就必须掌握这些面试重点和技术(含视频教程)
- (转贴) 每一个软件开发人员绝对必须掌握的关于 Unicode 和字符集的最基础的知识
- 黑马程序员---一DAY16总结--java中你必须掌握的集合框架技术
- 如何掌握所有的程序语言
- c#好的程序员必须掌握的编码习惯
- 2018要跳槽阿里,就必须掌握这些面试重点和技术(含视频教程)
- EntityFramwork所有 SSDL 项目都必须以同一提供程序为目标。ProviderManifestToken“2008”不同于以前遇到的“2005”
- 每一个软件开发人员绝对必须掌握的关于 Unicode 和字符集的最基础的知识 - A
- 技术转载:退出android程序清除所有activity
- 如何掌握所有的程序语言
- 运维工程师必须掌握的shell技术实战内容
- 黑马程序员---一DAY17总结--java中你必须掌握的集合框架技术
- System.Data.SqlClient.SqlError: 媒体集有 2 个媒体簇,但只提供了 1 个。必须提供所有成员程序代码
- 390开发实用技术: 重拳出击,CICS联机程序开发新手必看---一个典型的CICS程序,所有完备功能包括上下翻屏,增加/编辑/删除/拷贝纪录等
- 入门Linux运维工程师,必须要掌握的10个技术点
- 谨记初学者必须掌握的AngularJS技术要点清单
- 报错:指定的架构无效.所有 SSDL 项目都必须以同一提供程序为目标。ProviderManifestToken“2012”不同于以前遇到的“2005”。
- 软件开发必须掌握的十大技术(转)
- 想要自己运营astgo网络电话系统,必须要掌握以下基本技术