关于GBK编码的BUG 记事本输入“鲁”保存后重新打开显示乱码
2018-01-09 15:20
387 查看
以下转自百度百科
很多细心的人会发现,新建一个空的文本文件,用记事本打开(必须是Windows自带的记事本),只输入“联通”二字保存关闭(输入“1联通”也是联通显示的也是乱码),再重新打开时将是乱码。
当txt文档中一切字符都在 C0≤AA(第一个字节)≤DF 80≤BB(第二个字节)≤BF 这个范围时,notepad都无法确认文档的格式,自动依照GB-2312来解码。 而"联通"就是C1 AA CD A8,刚好在上面的范围内,所以不能正常显现。
记事本默认是以ANSI编码保存文本文档的,而正是这种编码存在的bug招致了上述怪现象。假如保存时选择Unicode、Unicode (Big Endian)、UTF-8编码,就正常了。此外,假如以ANSI编码保存含有某些特别符号的文本文档,再次打开后符号也会变成英文问号。
其他
ansi编码
不同的国家和地区制定了不同的标准,由此产生了 GB2312、GBK、Big5、Shift_JIS 等各自的编码标准。这些使用 1 至 4 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码;在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码。 不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。 当然对于ANSI编码而言,0x00~0x7F之间的字符,依旧是1个字节代表1个字符。这一点是ANSI编码与Unicode编码之间最大也最明显的区别。
中文名
ansi编码
外文名
American National Standards Institute
定 义
各种外文字符延伸编码方式
特 点
0x80~0xFF 多个字节来表示
bug
重新打开时将是乱码
中 文
美国国家标准学会
简 介
不同 ANSI 编码之间互不兼容
说 明
不同的国家和地区制定了不同标准
产生目的
使计算机支持更多语言
全 称
美国国家标准学会
目录
1 简介
2 关于GBK编码的BUG
简介
编辑
ANSI(American National Standards Institute),中文:美国国家标准学会。
为使计算机支持更多语言,通常使用 0x80~0xFF 范围的多个字节来表示 1 个字符。比如:汉字 '中' 在简体中文Windows操作系统中,使用 [0xD6,0xD0] 这两个字节存储。对于ANSI编码而言,0x00~0x7F之间的字符,依旧是1个字节代表1个字符。这一点是ANSI编码与UTF-16编码之间最大也最明显的区别。比如“A君是第131号”,在ANSI编码中,占用12个字节,而在UTF-16编码中,占用16个字节。因为A和1、3、1这4个字符,在ANSI编码中只各占1个字节,而在UTF-16编码中,是需要各占2个字节的。
很多细心的人会发现,新建一个空的文本文件,用记事本打开(必须是Windows自带的记事本),只输入“联通”二字保存关闭(输入“1联通”也是联通显示的也是乱码),再重新打开时将是乱码。
当txt文档中一切字符都在 C0≤AA(第一个字节)≤DF 80≤BB(第二个字节)≤BF 这个范围时,notepad都无法确认文档的格式,自动依照GB-2312来解码。 而"联通"就是C1 AA CD A8,刚好在上面的范围内,所以不能正常显现。
记事本默认是以ANSI编码保存文本文档的,而正是这种编码存在的bug招致了上述怪现象。假如保存时选择Unicode、Unicode (Big Endian)、UTF-8编码,就正常了。此外,假如以ANSI编码保存含有某些特别符号的文本文档,再次打开后符号也会变成英文问号。
其他
ansi编码
不同的国家和地区制定了不同的标准,由此产生了 GB2312、GBK、Big5、Shift_JIS 等各自的编码标准。这些使用 1 至 4 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码;在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码。 不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。 当然对于ANSI编码而言,0x00~0x7F之间的字符,依旧是1个字节代表1个字符。这一点是ANSI编码与Unicode编码之间最大也最明显的区别。
中文名
ansi编码
外文名
American National Standards Institute
定 义
各种外文字符延伸编码方式
特 点
0x80~0xFF 多个字节来表示
bug
重新打开时将是乱码
中 文
美国国家标准学会
简 介
不同 ANSI 编码之间互不兼容
说 明
不同的国家和地区制定了不同标准
产生目的
使计算机支持更多语言
全 称
美国国家标准学会
目录
1 简介
2 关于GBK编码的BUG
简介
编辑
ANSI(American National Standards Institute),中文:美国国家标准学会。
为使计算机支持更多语言,通常使用 0x80~0xFF 范围的多个字节来表示 1 个字符。比如:汉字 '中' 在简体中文Windows操作系统中,使用 [0xD6,0xD0] 这两个字节存储。对于ANSI编码而言,0x00~0x7F之间的字符,依旧是1个字节代表1个字符。这一点是ANSI编码与UTF-16编码之间最大也最明显的区别。比如“A君是第131号”,在ANSI编码中,占用12个字节,而在UTF-16编码中,占用16个字节。因为A和1、3、1这4个字符,在ANSI编码中只各占1个字节,而在UTF-16编码中,是需要各占2个字节的。
相关文章推荐
- 输入一个整数,将此整数保存到文件中,以记事本打开,显示同样的内容
- jdbc连接数据库的时候,显示出乱码。所以修改my.ini下的编码格式,把utf-8改为gbk,但是保存的时候出现说my.ini拒绝访问的情况。保存不成功,希望大家能够帮我解决,谢谢!
- GB2312、GBK和UTF-8三种编码以及QT中文显示乱码问题
- 重装系统后,导入的某个程序在eclipse中显示方框乱码,而记事本中打开正常
- mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)
- Vim中文件编码处理与重新打开乱码文件详解
- pl/sql developer 存储过程编译后,重新打开 中文显示乱码
- 简单有效:解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG
- 关于python保存再打开后的中文乱码的问题
- 关于Windows下记事本中保存编码的格式问题
- 怎么把控制台输入命令之后显示的东西保存到一个记事本中
- 怎么把控制台输入命令之后显示的东西保存到一个记事本中
- 解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG
- UTF8默认编码下的MYSQL命令框中输入汉字显示乱码的问题 分类: 测试 2013-08-02 14:16 371人阅读 评论(0) 收藏
- 在记事本中输入联通二字,再打开就是乱码了
- gulp打开gbk编码的html文件乱码
- UTF8默认编码下的MYSQL命令框中输入汉字显示乱码的问题
- atom 编辑器使用 gbk 编码查找替换显示乱码及查找不到头文件等问题
- 用记事本打开html txt之类保存后出现乱码的解决方式
- 解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG