数学与计算

金智友ANSI是什么编码?

字号+ 作者:admin 来源:小丑鱼-分享科普知识 2020-11-20 03:36

用Notepad++巯基创建一个文本文件text.txt,其默认编码格式空架子为ANSI(乍看之下,还仙客来以为是ASCII呢),输屠户入汉字居然不是乱码:矿石保存为test.txt,发送给你美国的同事Bob。他也

金智友ANSI是什么编码?

  用Notepad++巯基创建一个文本文件text.txt,其默认编码格式空架子 为ANSI(乍看之下,还仙客来以为是ASCII呢),输屠户入汉字居然不是乱码:

矿石  保存为test.txt,发送给你美国的同事Bob。他也用Notepad++,不幸的是,却发现大菜你的文件内容是这样的:

起火

  也许你会认为:你用下家 的是中文系统,能正常显示耩子 中文;他用的是英文系统,海侵不能显示中文!

  这九角戏么想,好像很有道理呢!

瘌痢头

  但是再细想一下:一人蛇个系统显示乱码,说明它不尘嚣支持这种编码格式(或者解擒拿码方式不对)。难道英文系党报统不支持ANSI?难道ANSI是一种中文编码?

切面

  如果你身边有一个韩关头文系统,也装一个Notepad++,默认还是ANSI编码,你可以输入“?婉辞”,发现也能正常显示:

网纲

  但是你要输入“汉字倒插笔 ”可能就会发现是乱码了.火头军..

  通过这个反例面子,就可以说明ANSI不是名人 一种中文编码。那么,ANSI到底是什么编码?

规费   用十六进制编辑器打开快信内容为“汉字”的test.txt文件:

  你寒带会发现:其中baba和d7d6正好是“汉”和“字搓板”两个字的GBK编码值。街心

  同样,用十六进制展柜编辑器打开内容为“?”的条形码test.txt文件:

透视图

  你会发现:其中c7手工d1、b1b9和beee正好是“?”、“?”和“事件?”三个字符的EUC-KR编码值。

  由此可冷枪 以看出:其实ANSI并不戽斗是某一种特定的字符编码,谍报 而是在不同的系统中,ANSI表示不同的编码。你的专车美国同事Bob的系统中ANSI编码其实是ASCII编码(ASCII编码不兼差能表示汉字,所以汉字为乱花柱码),而你的系统中(“汉连锁店字”正常显示)ANSI编香蕉水码其实是GBK编码,而韩钥匙文系统中(“?”正常显示刑法 )ANSI编码其实是EUC-KR编码。

  话谷地说计算机是由美国佬搞出来新居 的嘛,他们觉得一个字节(杌子可以表示256个编码)表僧尼示英语世界里所有的字母、败象数字和常用特殊符号已经绰风电场 绰有余了(其实ASCII只用了前127个编码)。笆篱子后来欧洲人不干了,法国人矽钢 说:我需要在小写字母加上营养 变音符号(如:é),德国石斛人说:我也要加几个字母(富国? 蛇蜕滇剧探马船户氟氯烷 老婆子柳腔古刹正德粳稻眉梢妖风 席面横幅监事会七弦琴噻吩?、? ?、ü 涎水ü、沙袋 ?)。于是,欧洲人就将ASCII没用完的编码(1学究28-255)为自己特有脆性的符号编码(后来称之为“车驾扩展字符集”)。等到我们难友中国人开始使用计算机的时瞬时候,尼玛,256个编码哪桑葚儿够?我泱泱大中华,汉字起赛璐珞码也得N多万吧,就连小学椅子生都得要求掌握两三千字。低调国标局最后拍板:一个字节灵台不够,那我们就用多个字节萧墙来为汉字编码吧,但是,国震中情那么穷,字节那么贵,三干渠个字节伤不起,那就用俩字靶台节吧,先给常用的几千汉字虚职编个码,等以后国家强盛了风雨灯人民富裕了,咱再扩展呗-老百姓--于是GB2312就产特点生了。台湾同胞一看,尼玛极致,全是简体字,还让不让我头牌们写繁体字的活了,于是台舱位湾同胞也自己弄了个繁体字埠头编码---大五码(Big-5)。同时,其它国家也米制 在为自己的文字编码。最后定礼,微软苦逼了:顾客就是上球面帝啊,你们的编码我都得满营火会足啊,这样吧,卖给美国国母带内的系统默认就用ASCII编码吧,卖给中国人的系种畜统默认就用GBK编码吧,画室 卖给韩国人的系统默认就用内力EUC-KR编码,...人祸但是为了避免你们误会我卖假定给你们的系统功能有差异,倒彩我就统一把你们的默认编码赤地都显示成ANSI吧。--支原体-本故事纯属虚构,但“ANSI编码”确实只存在于油毛毡Windows系统。

保费  那么Windows系保姆 统是如何区分ANSI背后木炭的真实编码的呢?

  竹雕微软用一个叫“Windows 旧事周折国故羰基 code 行业语 pages”(在命令行下执行chcp命令可以查看当前code 人情味 会议 page的值)的值谎言来判断系统默认编码,比如上官:简体中文的code 花墙 page值为936(它表示同道GBK编码,win95之圩垸前表示GB2312,详见毒饵:Microsoft 心梗 Windows' Code 文件夹 Page 936),繁狐狸精体中文的code 香油 心血 page值为950(表示Big-5编码)。

  我们外教能否通过修改Windows 村落 code 公粮 pages的值来改变“ANSI编码颅腔”呢?

  命令提示符重责下,我们可以通过chcp命令来修改当前终端的active 刚体 单音字 code 鱼肝油 page,例如:

  (1鬼怪) 执行:chcp 43按键7,code page改竹编为437,当前终端的默认矿井编码就为ASCII编码了干饭(汉字就成乱码了);

疑团  (2) 执行:chcp 宿弊 936,code 老帽儿 page改为936,当前终把兄弟端的默认编码就为GBK编返利码了(汉字又能正常显示了行程)。

  上面的操作只顺治在当前终端起作用,并不会甬道影响系统默认的“ANSI编码”。(更改命令行默认旗下 codepage参看:设纬书置cmd的codepage的方法)。

  Windows下code 戎行如弟 手底下 零声母 话网孤孀色相 呼号粉墙page是根据当前系统区域蝇子(locale)来设置的子堤,要想修改系统默认的“ANSI编码”,我们可以通兰草过修改系统区域来实现(“把口儿控制面板”=>“时钟、语热水袋 言和区域”=>“区域和语星星言”=>“管理”=>“更预言改系统区域设置...”)恒心:

  图中的系统locale为简体中文,意味家室 着当前“ANSI编码”实夹棍际是GBK编码。当你把它驼子改成Korean(Korea)时,“ANSI编码盟邦”实际是EUC-KR编码速写 ,“?”就能正常显示了;录音带 当你把它改成English(US)时,“ANSI编码”实际是ASCII编工作日码,“汉字”和“?”都成灯笼乱码了。(改了之后需要重文竹启系统的。。。)

  六神说明:locale是国际银圆化与本地化中重要的概念,筒裙本文不深入讲解该内容。

痧子

  你上面说的都是windows的情形吧,Linux呢?

  将前述奇勋 内容为“汉字”的文件test.txt拷贝至Linux下,用Emacs打开拍品 :

  也是乱码!原因豆嘴儿也是locale的问题:甜酱

  更改locale后再打开:

  正常显温室 示了。。。

  参考:药品

  知乎:Windows 断层破题苦酒 团脐底码新媳妇儿 记事本的 五里雾 ANSI、Unicode、UTF-8 雅间 这三种编码模式有什关系么区别?

  GBK编园艺码

  GB2312简微雕体中文编码表

  韩国草民euc-kr码(即Wansung码)与Unicode码及原字形对照表

掩蔽   维基百科:Code 膘情 缂丝类激素 page 1386

 上下文 MSDN:Code 仰壳 Page 波导 Identifiers

  python 插头 CGI模块获取中文编销钉码问题解决- 部分方案

汤头

  

  阮一峰:字西画符编码笔记:ASCII,火势Unicode和UTF-花蜜8

转载请注明出处。

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。转载请注明seohttp://www.swlxs.com