您的位置: 首页 > 技术文档 > 网络编程 > 关于字符集和Unicode的相关知识
C# 3.5 WCF REST架构简单网站 回到列表 Visual Studio DSL 入门(一)
 关于字符集和Unicode的相关知识

作者:Joel Spolsky 时间: 2010-03-12 文档类型:翻译 来自:

第 1 页 关于字符集和Unicode的相关知识 [1]
第 2 页 关于字符集和Unicode的相关知识 [2]
第 3 页 关于字符集和Unicode的相关知识 [3]
第 4 页 关于字符集和Unicode的相关知识 [4]
第 5 页 关于字符集和Unicode的相关知识 [5]

历史回顾

可能你以为我要开始谈非常古老的字符集如EBCDIC之类的,实际上我不会。EBCDIC与你的生活无关,我们不需要回到那么远。

ascii.png

回到一般远就行了。当Unix刚出来的时候,K&R写了《The C Programming Language》一书,那时一切都很简单。EBCDIC已经惭惭不用,因为需要表示的字符只有那些不带重音的英文字母,ASCII完全可以胜任。ASCII使用数字32到 127来表示所有的英文字母,比如空格是32,字母"A"是65等等。使用7个比特就可以存储所有这样字符。那个时代的大多数计算机使用8个比特来,所以你不但可以存储全部的ASCII,而且还有一个比特可以多出来用作其他。如果你想,你可以把它用作你不可告人的目的。32以下的码字是不可打印的,它们属于控制字符,像7表示响铃,12表示打印机换纸。

所有的一切都看起来那么完美,当然前提你生在一个讲英文的国家。

oem.png

因为一个字节有8个比特,而现在只用了7个,于是很多人就想到"对呀,我们可以使用128-255的码字来表示其他东西"。麻烦来了,这么多人同时出现了这样的想法,而且将之付诸实践。于是IBM-PC上多了一个叫OEM字符集的东西,它包括了一些在欧洲语言中用到的重音字符,还有一些画图的字符,比如水平线、垂直线等,水平线在右端会带一个小弯钩,垂直线会如何等等。使用这些画图字符你可以画出漂亮的框、画出光滑的线条,在老式的烘干机上的8088电脑上你依然可以看到这些字符。事实上,当PC在美国之外的地方开始销售的时候,OEM字符集就完全乱套了,所有的厂商都开始按照自己的方式使用高128个码字。比如在有些PC上,130表示é,而在另外一些在以色列出售的计算机上,它可能表示的是希伯来字母ג,所以当美国人把包含résumés这样字符的邮件发到以色列时,就为变为rגsumגs。在大多数情况下,比如俄语中,高128个码字可能用作其他更多的用途,那么你如何保证俄语文档的可靠性呢?

最终ANSI标准结束了这种混乱。在标准中,对于低128个码字大家都无异议,差不多就是ASCII了,但对于高128个码字,根据你所在地的不同,会有不同的处理方式。我们称这样相异的编码系统为码页(code pages)。举个例子,比如在以色列发布的DOS中使用的码页是862,而在希腊使用的是737。它们的低128个完全相同,但从128往上,就有了很大差别。MS-DOS的国际版有很多这样的码页,涵盖了从英语到冰岛语各种语言,甚至还有一些"多语言"码页。但是还得说,如果想让希伯来语和希腊语在同一台计算机上和平共处,基本上没有可能。除非你自己写程序,程序中的显示部分直接使用位图。因为希伯来语对高128个码字的解释与希腊语压根不同。

同时,在亚洲,更疯狂的事情正在上演。因为亚洲的字母系统中要上千个字母,8个比特无论如何也是满足不了的。一般的解决方案就是使用DBCS- "双字节字符集",即有的字母使用一个字节来表示,有的使用两个字节。所以处理字符串时,指针移动到下一个字符比较容易,但移动到上一个字符就变得非常危险了。于是s++或s--不再被鼓励使用,相应的比如Windows下的AnsiNext和AnsiPrev被用来处理这种情况。

可惜,不少人依然坚信一个字节就是一个字符,一个字符就是8个比特。当然,如果你从来都没有试着把一个字符串从一台计算机移到另一台计算机,或者你不用说除英文以外的另一种语言,那么你的坚信不会出问题。但是互联网出现让字符串在计算机间移动变得非常普遍,于是所有的混乱都爆发了。非常幸运,Unicode适时而生。

出处:
责任编辑:bluehearts

上一页 关于字符集和Unicode的相关知识 [1] 下一页 关于字符集和Unicode的相关知识 [3]

◎进入论坛网络编程版块参加讨论

相关文章
任意字符集下正常显示网页
Flash与后台编码问题解决新方案
关键字搜索 常规搜索 推荐文档
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule
>> 分页 首页 前页 后页 尾页 页次:2/51个记录/页 转到 页 共5个记录

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2