所有程序必须掌握的字符集和编码技术

本文从ASCII编码出发,探讨了字符编码的发展历程,介绍了DBCS双字节系统的引入背景及其工作原理,并深入解析了Unicode字符集及其多种编码方式,如Ucs-2、UTF-8等。同时,文中强调了正确理解字符编码对于处理文本的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

好久没有来看看自己的博客了, 最近再看一些书,很有启发;写了一些摘要,希望对大家有帮助;;

 

 

以前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;;
如果再内存,文件,电子邮件中有一个字符串,那么应该知道它使用的是什么编码方案,否则,就不能正确的显示或解释给用户

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值