关于GBK编码的BUG 记事本输入“鲁”保存后重新打开显示乱码

以下转自百度百科

很多细心的人会发现,新建一个空的文本文件,用记事本打开(必须是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个字节的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当我们重新打开一个idea property文件时,如果出现乱码的情况,有可能是以下几个原因导致的: 1. 编码格式不匹配: property文件的编码格式需要与打开文本编辑器所使用的编码格式相匹配。如果编码格式不匹配,就会导致显示乱码。我们可以尝试将文本编辑器的编码格式设置为与property文件一致的编码格式,如UTF-8或GBK等,然后重新打开文件看是否能够解决问题。 2. 文件损坏: property文件在存储或传输过程中可能会出现损坏,导致文件内容被破坏,从而显示乱码。这种情况下,我们可以尝试使用备份文件或重新获取原始的property文件,并重新打开文件查看是否还存在乱码问题。 3. 特殊字符处理不当: property文件中可能包含一些特殊字符,例如换行符、回车符等,如果这些特殊字符没有被正确处理,就会导致乱码的出现。我们可以查看文件的原始内容,检查是否存在特殊字符,并尝试使用合适的转义方式进行处理,以确保特殊字符能够正确显示。 4. 编辑器设置问题: 如果我们使用不支持property文件格式的文本编辑器打开文件,也可能导致乱码的出现。建议使用专门的property文件编辑器,如IntelliJ IDEA中的Properties文件编辑器,打开property文件,并确保编辑器的相关设置正确配置,以便正确显示文件内容。 总之,当我们重新打开一个idea property文件后出现乱码问题时,我们可以尝试检查编码格式、文件损坏、特殊字符处理和编辑器设置等方面的问题,并采取相应的处理措施来解决乱码问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值