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

2014-08-22 14:44:43 +08:00
 dahuang7
3616 次点击
所在节点    问与答
5 条回复
zhujinliang
2014-08-22 15:05:11 +08:00
印象中保存时会提醒你 包含Unicode字符,保存为当前格式会丢失字符 之类的
记事本是支持Unicode的吧,只不过默认格式是ansi
Gymgle
2014-08-22 15:18:57 +08:00
以下答非所问。

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

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

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

当你输入 {祎} 这个字的时候,如果程序能正常显示,那么显然这个程序是『支持这个汉字的』,那么假设此程序运行时采用的『内存存储』编码是 Acode。
当你点击『保存』要写入硬盘是,就要询问你希望用何种编码存储。于是你选择了 GB2312,此时会有一个编码转换过程,也就是将 Acode 的 {祎} 转换为 GB2312,结果没有,至于如何存储是警告啊,还是其他方式写入磁盘,全由软件行为决定。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/129329

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX