txt文本文件编码格式

txt文本文件编码格式

今天看到一个bug:TXT文件中有繁体字“優”上传WBE端后无法预览,排查结果是Txt的编码导致无法预览。

txt文件的编码格式有“ANSI、Unicode、Unicode big endian、UTF-8”,记事本中可以正确打开这四种编码的文本,但其它文字编辑软件中这些编码就未必都能正常显示。一部分手机、MP4之类电子产品只能正确显示“ANSI”编码的TXT文件,如果出现乱码可以使用记事本打开文件然后另存为时修改txt文件的编码格式。

查看txt文件编码格式的方法:用记事本打开–菜单“文件”–另存为,另存为窗口下部显示当前文件的编码格式

其中ansi编码,不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。

不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。

附一个txt文件编码格式的经典bug详解:

为什么新建文本文档只输入“联通”保存再打开时将是乱码?

当txt文档中一切字符都在 C0≤AA(第一个字节)≤DF 80≤BB(第二个字节)≤BF 这个范围时,notepad都无法确认文档地格式,没有自动依照UTF-8格式来”Display”。 而”联通”就是C1 AA CD A8,刚好在上面地范围内,所以不能正常显现。

记事本默认是以ANSI编码保存文本文档的,而正是这种编码存在的bug招致了上述怪现象。假如保存时选择Unicode、Unicode(big endian)、UTF-8编码就正常了。此外,假如以ANSI编码保存含有某些特别符号的文本文档,再次打开后符号也会变成英文问号。

6san.com

发表评论