小白编码知识&&乱码应对方案
如果文件内容没有乱码,但是通过代码读取出来的内容中出现了乱码,原因可能出在了编码上。
编码,是信息从一种信息或格式,转换成另外一种形式的过程,简单来讲,就是指语言的翻译过程。它可以用代码来表示各组数据资料,使其成为可利用计算机进行处理和分析的信息。代码是用来表示事物的记号,它可以用数字、字母、特殊的符号或它们之间的组合来表示。
常见的编码有三种:
- gbk
专门为中文设计的编码方案。 - utf-8
可用于编码中文、英文等大多数国家的文字、字母、符号。 - utf-8-sig
-
Windows 系统的中文环境下,部分文件在保存后,文件最前面会带有 BOM(byte-order mark,字节顺序标记)。
-
读取带有 BOM 头的 csv 文件前,如果不对 BOM 进行处理,第一项最前面会多 “\ufeff” 几个字母。如果这一项再作为内容被写入 csv文件,则会出现乱码的情况。
-
为了解决乱码问题,可以将使用 “utf-8-sig" 编码格式,“utf-8-sig" 中的 sig 即 signature ,也就是“带有签名的 utf-8”,这样在读取带有 BOM 的“utf-8”的文件时,会把BOM 单独处理,与文本内容隔离开。
-
常出现的编码问题:
- vscode查看文件内容出现乱码
- txt 文件的编码为 gbk,而 VSCode 打开文件的默认编码为 utf-8,两者的编码不兼容,导致在 VSCode 显示 txt 文件内容时出现乱码。
- 使用代码读取文件出现报错
- 同理,txt 文件的编码为 gbk,代码以编码为 utf-8 的方式读取文件,两者的编码不兼容,导致程序报错。
查看/更改编码方式:
- txt文件:[另存为]窗口查看编码(在下图的右下角),如需更改在此修改。

- vscode:右下角修改文件编码模式



然后就修改好啦!完结撒花!

浙公网安备 33010602011771号