V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
dahuang7
V2EX  ›  问与答

微软 Windows 自带的记事本保存默认是 ANSI 的,在简体中文的操作系统上保存中文的时候,是以 GB2312 的标准保存的。那如果我输入的这个汉字在 GB2312 里没被收录,这时候是怎么处理的呢?

  •  
  •   dahuang7 · 2014-08-22 14:44:43 +08:00 · 3697 次点击
    这是一个创建于 3738 天前的主题,其中的信息可能已经有所发展或是发生改变。
    5 条回复    2014-08-22 15:55:59 +08:00
    zhujinliang
        1
    zhujinliang  
       2014-08-22 15:05:11 +08:00
    印象中保存时会提醒你 包含Unicode字符,保存为当前格式会丢失字符 之类的
    记事本是支持Unicode的吧,只不过默认格式是ansi
    Gymgle
        2
    Gymgle  
       2014-08-22 15:18:57 +08:00
    以下答非所问。

    既然已经能输出这个汉字了,无论GB2312收没收录,保存的时候使用什么编码,打开的时候也使用相同的编码,就能正常显示了吧。

    一个因为编码导致的问题:
    在记事本里写入“联通”这两个字,保存时默认ANSI保存,再用记事本打开发现是乱码?因为记事本打开的时候认为内容是以UTF-8编码的。用Notepad++打开,用不同的编码格式显示,ANSI和GB2312编码都会显示正确。
    dahuang7
        4
    dahuang7  
    OP
       2014-08-22 15:43:18 +08:00
    其实是遇到这么一个情况,「祎」这个词在GB2312里面没有收录,如果在windows下用记事本打这个字的话,文件传到Mac上不是显示不能打开也不是显示为乱码,而是显示为「掉」字,这个事情太奇怪了,所以想弄清楚。

    PS,可以百度搜一下「周鸿祎」和「周鸿掉」
    rrfeng
        5
    rrfeng  
       2014-08-22 15:55:59 +08:00
    把各种『码』的关系搞清楚,一切就明白了……

    当你输入 {祎} 这个字的时候,如果程序能正常显示,那么显然这个程序是『支持这个汉字的』,那么假设此程序运行时采用的『内存存储』编码是 Acode。
    当你点击『保存』要写入硬盘是,就要询问你希望用何种编码存储。于是你选择了 GB2312,此时会有一个编码转换过程,也就是将 Acode 的 {祎} 转换为 GB2312,结果没有,至于如何存储是警告啊,还是其他方式写入磁盘,全由软件行为决定。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2826 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 14:26 · PVG 22:26 · LAX 06:26 · JFK 09:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.