当前位置: 首页 > news >正文

单位网站 单位网页 区别重庆网页设计公司排名

单位网站 单位网页 区别,重庆网页设计公司排名,做推广网站,备案期间 需要关闭网站吗编码问题的例子 在windows自带的notepad#xff08;记事本#xff09;程序中输入“联通”两个字#xff0c;保存后再次打开#xff0c;会发现“联通”不见了#xff0c;代之以“”的乱码。这是windows平台上典型的中文编码问题。即文件保存的时候是按照ANSI编码#xff…编码问题的例子 在windows自带的notepad记事本程序中输入“联通”两个字保存后再次打开会发现“联通”不见了代之以“”的乱码。这是windows平台上典型的中文编码问题。即文件保存的时候是按照ANSI编码其实就是GB2312后面会详细介绍保存打开的时候程序按照UTF-8方式对内容解释于是就出现了乱码。避免乱码的方式很简单在“文件”菜单中选择“打开”命令选择保存的文件然后选择“ANSI”编码此时就能看到久违的“联通”两个字了。 在Linux平台上如果使用cat等命令查看文件中的中文内容时可能出现乱码。这也是编码的问题。简单的说是文件时按照A编码保存但是cat命令按照当前Locale设定的B编码去查看在B和A不兼容的时候就出现了乱码。 为什么写这篇文章 中文编码由于历史原因牵扯到不少标准在不了解的时候感觉一头雾水但其实理解编码问题并不需要你深入了解各个编码标准只要你明白了来龙去脉了解了关键的知识点就能分析和解决日常开发工作中碰到的大部分编码问题。有感于我看过的资料和文章要么不够全面要么略显枯燥所以通过这篇文章记录下笔者在日常工作中碰到的中文编码原理相关问题目的主要是自我总结如果能给读者提供一些帮助那就算是意外之喜了。由于严谨的编码标准对我来说是无趣的枯燥的难以记忆的本文尝试用浅显易懂的生活语言解释中文编码相关的也可能不相关的一些问题这也是为什么取名杂谈的原因。本文肯定存在不规范不全面的地方我会在参考资料里给出官方文档的链接也欢迎读者在评论中提出更好的表达方式指出错误不胜感激。 对编码问题的理解我认为分为三个层次第一个层次概念知道各个编码标准的应用场景了解之间的差异能分析和解决常见的一些编码问题。第二个层次标准掌握编码的细节如编码范围编码转换规则知道这些就能自行开发编码转换工具。第三个层次使用了解中文的编码2进制存储在程序开发过程中选择合理的编码并处理中文。为了避免让读者陷入编码标准的黑洞无法脱身不相信看看unicode的规范就明白我的意思了同时由于编码查询转换工具等都有现成工具可以使用本文只涉及第一个层次不涉及第二层次在第三层次上会做一些尝试。在本文的最后提供了相关链接供对标准细节感兴趣的同学继续学习。最后本文不涉及具体软件的乱码问题解决如sshshellvimscreen等这些话题留给剑豪同学专文阐述。 一切都是因为电脑不识字 电脑很聪明可以帮我们做很多事情最开始主要是科学计算这也是为什么电脑别名计算机。电脑又很笨在她的脑子里只有数字即所有的数据在存储和运算时都要使用二进制数表示。这在最初电脑主要用来处理大量复杂的科学计算时不是什么大问题但是当电脑逐步走入普通人的生活时情况开始变遭了。办公自动化等领域最主要的需求就是文字处理电脑如何来表示文字呢这个问题当然难不倒聪明的计算机科学家们用数字来代表字符呗。这就是“编码”。 英文的终极解决方案ASCII 每个人都可以约定自己的一套编码只要使用方之间了解就ok了。比如说咱俩约定0×10表示a0×11表示b。在一开始也的确是这样的出现了各式各样的编码。这样有两个问题1.各个编码的字符集不一样有的多有的少。2.相同字符的编码也不一样。你这里a是0×10.他那里a可能是0×30。于是你保存的文件他就不能直接用必须要转换编码。随着沟通范围的扩大采用不同编码的人们互相通信就乱套了这就是我们常说的鸡同鸭讲。如果要避免这种混乱那么大家就必须使用相同的编码规则于是美国有关的标准化组织就出台了ASCIIAmerican Standard Code for Information Interchange编码统一规定了英文常用符号用哪些二进制数来表示。ASCII是标准的单字节字符编码方案用于基于文本的数据。 ASCII最初是美国国家标准供不同计算机在相互通信时用作共同遵守的西文字符编码标准已被国际标准化组织International Organization for Standardization, ISO定为国际标准称为ISO 646标准。适用于所有拉丁文字字母。ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码使用7 位二进制数来表示所有的大写和小写字母数字0 到9、标点符号 以及在美式英语中使用的特殊控制字符。而最高位为1的另128个字符80H—FFH被称为“扩展ASCII”一般用来存放英文的制表符、部分音标字符等等的一些其它符号。 其中031及127(共33个)是控制字符或通信专用字符其余为可显示字符32126(共95个)是字符(32是空格其中4857为0到9十个阿拉伯数字6590为26个大写英文字母97122号为26个小写英文字母其余为一些标点符号、运算符号等。 现在所有使用英文的电脑终于可以用同一种编码来交流了。理解了ASCII编码其他字母型的语言编码方案就触类旁通了。 一波三折的中文编码 第一次尝试GB2312 ASCII这种字符编码规则显然用来处理英文没有什么问题它的出现极大的促进了信息在西方尤其是美国的传播和交流。但是对于中文常用汉字就有6000以上ASCII 单字节编码显然是不够用。为了粉碎美帝国主义通过编码限制中国人民使用电脑的无耻阴谋中国国家标准总局发布了GB2312码即中华人民共和国国家汉字信息交换用编码全称《信息交换用汉字编码字符集——基本集》1981年5月1日实施通行于大陆。GB2312字符集中除常用简体汉字字符外还包括希腊字母、日文平假名及片假名字母、俄语西里尔字母等字符未收录繁体中文汉字和一些生僻字。 EUC-CN可以理解为GB2312的别名和GB2312完全相同。 GB2312是基于区位码设计的在区位码的区号和位号上分别加上A0H就得到了GB2312编码。这里第一次提到了“区位码”我就连带把下面这几个让人摸不到头脑的XX码一锅端了吧 区位码国标码交换码内码外码 区位码就是把中文常用的符号数字汉字等分门别类进行编码。区位码把编码表分为94个区每个区对应94个位每个位置就放一个字符汉字符号数字都属于字符。这样每个字符的区号和位号组合起来就成为该汉字的区位码。区位码一般用10进制数来表示如4907就表示49区7位对应的字符是“学”。区位码中01-09区是符号、数字区16-87区是汉字区10-15和88-94是未定义的空白区。它将收录的汉字分成两级第一级是常用汉字计3755个置于16-55区按汉语拼音字母/笔形顺序排列第二级汉字是次常用汉字计3008个置于56-87区按部首/笔画顺序排列。在网上搜索“区位码查询系统”可以很方便的找到汉字和对应区位码转换的工具。为了避免广告嫌疑和死链这里就不举例了。 国标码 区位码无法用于汉字通信因为它可能与通信使用的控制码00H~1FH即0~31还记得ASCII码特殊字符的范围吗发生冲突。于是ISO2022规定每个汉字的区号和位号必须分别加上32即二进制数0010000016进制20H得到对应的国标交换码简称国标码交换码因此“学”字的国标交换码计算为 1 2 3 4 00110001 00000111 00100000 00100000 ------------------- 01010001 00100111 用十六进制数表示即为5127H。 交换码即国标交换码的简称等同上面说的国标码。 内码由于文本中通常混合使用汉字和西文字符汉字信息如果不予以特别标识就会与单字节的ASCII码混淆。此问题的解决方法之一是将一个汉字看成是两个扩展ASCII码使表示GB2312汉字的两个字节的最高位都为1。即国标码加上128即二进制数10000000,16进制80H这种高位为1的双字节汉字编码即为GB2312汉字的机内码简称为内码。20H80HA0H。这也就是常说的在区位码的区号和位号上分别加上A0H就得到了GB2312编码的由来。 1 2 3 4 00110001 00000111 10100000 10100000 ------------------- 11010001 10100111 用十六进制数表示即为D1A7H。 外码机外码的简称,就是汉字输入码是为了通过键盘字符把汉字输入计算机而设计的一种编码。 英文输入时相输入什么字符便按什么键外码和内码一致。汉字输入时可能要按几个键才能输入一个汉字。 汉字输入方案有成百上千个但是这千差万别的外码输入进计算机后都会转换成统一的内码。 最后总结一下上面的概念。中国国家标准总局把中文常用字符编码为94个区每个区对应94个位每个字符的区号和位号组合起来就是该字符的区位码, 区位码用10进制数来表示如4907就表示49区7位对应的字符是“学”。 由于区位码的取值范围与通信使用的控制码00H~1FH即0~31发生冲突。每个汉字的区号和位号分别加上32即16进制20H得到国标码交换码。“学”的国标码为5127H。由于文本中通常混合使用汉字和西文字符为了让汉字信息不会与单字节的ASCII码混淆将一个汉字看成是两个扩展ASCII码即汉字的两个字节的最高位置为1得到的编码为GB2312汉字的内码。“学”的内码为D1A7H。无论你使用什么输入法通过什么样的按键组合把“学”输入计算机“学”在使用GB2312以及兼容GB2312编码的计算机里的内码都是D1A7H。 第二次尝试GBK GB2312的出现基本满足了汉字的计算机处理需要但由于上面提到未收录繁体字和生僻字从而不能处理人名、古汉语等方面出现的罕用字这导致了1995年《汉字编码扩展规范》GBK的出现。GBK编码是GB2312编码的超集向下完全兼容GB2312兼容的含义是不仅字符兼容而且相同字符的编码也相同同时在字汇一级支持ISO/IEC10646—1和GB 13000—1的全部中、日、韩CJK汉字共计20902字。GBK还收录了GB2312不包含的汉字部首符号、竖排标点符号等字符。CP936和GBK的有些许差别绝大多数情况下可以把CP936当作GBK的别名。 第三次尝试GB18030 GB18030编码向下兼容GBK和GB2312。GB18030收录了所有Unicode3.1中的字符包括中国少数民族字符GBK不支持的韩文字符等等也可以说是世界大多民族的文字符号都被收录在内。GBK和GB2312都是双字节等宽编码如果算上和ASCII兼容所支持的单字节也可以理解为是单字节和双字节混合的变长编码。GB18030编码是变长编码有单字节、双字节和四字节三种方式。 其实这三个标准并不需要死记硬背只需要了解是根据应用需求不断扩展编码范围即可。从GB2312到GBK再到GB18030收录的字符越来越多即可。万幸的是一直是向下兼容的也就是说一个汉字在这三个编码标准里的编码是一模一样的。这些编码的共性是变长编码单字节ASCII兼容对其他字符GB2312和GBK都使用双字节等宽编码只有GB18030还有四字节编码的方式。这些编码最大的问题是2个。1.由于低字节的编码范围和ASCII有重合所以不能根据一个字节的内容判断是中文的一部分还是一个独立的英文字符。2.如果有两个汉字编码为A1A2B1B2存在A2B1也是一个有效汉字编码的特殊情况。这样就不能直接使用标准的字符串匹配函数来判断一个字符串里是否包含某一个汉字而需要先判断字符边界然后才能进行字符匹配判断。 最后提一个小插曲上面讲的都是大陆推行的汉字编码标准使用繁体的中文社群中最常用的电脑汉字字符集标准叫大五码Big5共收录13,060个中文字其中有二字为重覆编码(实在是不应该)。Big5虽普及于中国的台湾、香港与澳门等繁体中文通行区但长期以来并非当地的国家标准而只是业界标准。倚天中文系统、Windows等主要系统的字符集都是以Big5为基准但厂商又各自增删衍生成多种不同版本。2003年Big5被收录到台湾官方标准的附录当中取得了较正式的地位。这个最新版本被称为Big5-2003。 天下归一Unicode 看了上面的多个中文编码是不是有点头晕了呢如果把这个问题放到全世界n多个国家n多语种呢各国和各地区自己的文字编码规则互相冲突的情况全球信息
http://www.pierceye.com/news/807697/

相关文章:

  • 设计素材免费下载网站做广告牌子
  • 名师工作室网站建设 意义常州网站建设专业的公司
  • 中国建设银行官网站预定红念币天元建设集团有限公司地址
  • wix做网站教程网站建设 销售提成
  • 长安网站建设费用开天猫旗舰店网站建设
  • 网页游戏网站哪个最好专业建站公司建站系统该规划哪些内容
  • 青岛网站建设公司大全在那些网站上做企业宣传好
  • 天河定制型网站建设中国科技成就的例子
  • 网站报备查询android安卓软件下载
  • 百度站长平台网站验证wordpress关闭略缩图
  • 网站怎么做qq微信登陆界面设计的有趣的网站推荐
  • 设计logo网站赚钱注册域名怎么做网站
  • 网站备案 教程网站设计大全推荐
  • 临沂建设局网站官网文明网站建设工作进度表
  • 网站编辑seo旅游网站建设代码
  • 为什么自己做的网站打开是乱码wordpress live-2d
  • 素材下载网站电商自建站
  • 浙江省的网站建设公司有哪些代理注册公司一般多少钱
  • 如何在建设银行网站预约纪念币东莞网站建设服务有什
  • 有哪些可以做h5的网站代理网址上境外网
  • 做网站所需要的代码6红杏直播
  • 南通制作网站wordpress移动版设置
  • 哪个网站有免费ppt下载建筑类网站的推荐理由
  • 视觉差的网站公司外包
  • 基础做网站内蒙住房和城乡建设部网站
  • 发帖效果好的网站展馆展示设计公司排名
  • 童装网站建设文案什么网站做的号
  • 能打开的a站莆田网站建设建站系统
  • 上海市城乡建设管理局网站一个月做网站
  • 网站后台管理系统 aspwordpress拖拽上传