当前位置: 首页 > 学习笔记 > 正文

编码的问题

        最近老是在各个服务器空间和本地电脑上编辑文本,有时候发现从一个地方down下来的东西up到另外一个地方,执行起来老是出现乱七八糟的现象,在手动修改了出现乱码的地方后问题消失了。开始我一直都很迷糊这个问题,以为是服务器语言支持的问题(如英语、西班牙语、俄语空间等)。后来无意在网上闲逛看到一篇讲述编码引发出错的文章才意识到原来我也碰到了此类问题。因为在各服务器上操作,编辑工具的不同从而导致了保存的文件编码不同才引起了乱码的出现。看来有时候小问题也需要注意啊,真是细节决定成败。

ansi编码介绍
  为使计算机支持更多语言,通常使用 0×80~0xFF 范围的 2 个字节来表示 1 个字符。比如:汉字 ‘中’ 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。   不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。   不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。
关于ansi编码的BUG
  很多细心的人会发现,当新建文本文档只输入“联通”2字保存再打开时将是乱码。当txt文档中一切字符都在 C0≤AA≤DF 80≤BB≤BF 这个范围时,notepad都无法确认文档地格式,没有自动依照UTF-8格式来”Display”。 而”联通”就是C1 AA CD A8,刚好在上面地范围内,所以不能正常显现。  记事本默认是以ANSI编码保存文本文档的,而正是这种编码存在的bug招致了上述怪现象。假如保存时选择Unicode、Unicode(big endian)、UTF-8编码就正常了。此外,假如以ANSI编码保存含有某些特别符号的文本文档,再次打开后符号也会变成英文问号。例如输入英文 this app can break 以ANSI编码保存也会变成乱码。

本文固定链接: http://exsbn.com/post/205 | 御剑独舞

该日志由 xizi 于2010年06月22日发表在 学习笔记 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 编码的问题 | 御剑独舞
【上一篇】
【下一篇】

编码的问题:等您坐沙发呢!

发表评论


CommentLuv badge

NO SPAMS Time limit is exhausted. Please reload the CAPTCHA.

快捷键:Ctrl+Enter