CSV、TXT 中文乱码怎么修:GBK、Big5、UTF-8 BOM 与编码检测
文件乱码通常不是字体问题,而是原始字节被错误编码读取。本文说明 BOM、GBK/GB18030、Big5、UTF-8、Excel CSV 导入,以及不破坏原文件的转换流程。
打开配套工具 →CSV 或 TXT 打开后出现“锟斤拷”、é、问号方框或 �,通常不是缺字体,而是程序用错了字符编码。最危险的操作,是在乱码状态下直接保存:一旦错误字符覆盖了原始字节,后面再换编码也未必能恢复。
文件编码检测与 UTF-8 转换工具会直接读取文件字节,检查 BOM、严格验证 UTF-8,并给出 GB18030/GBK、Big5、Shift_JIS、EUC-KR、Windows-1252 等候选。你可以逐个切换查看预览,再导出 UTF-8、UTF-8 BOM 或 UTF-16。整个过程在浏览器本地完成。
扩展名不能说明编码
.csv 只说明数据按分隔符组织,.txt 只说明它是文本,.srt、.xml、.html 也各自描述文件用途。它们都可能使用 UTF-8、GBK、Big5、UTF-16 或其他编码。
同一段“商品名称”,在 UTF-8 和 GBK 中对应的字节不同。程序必须先知道使用哪套规则,才能把字节还原成 Unicode 字符。编码选错,字节没有变,屏幕上的字却完全不同。
BOM 能解决什么,不能解决什么
BOM 是文件开头的识别字节。UTF-8 BOM 是 EF BB BF,UTF-16 小端通常是 FF FE,大端是 FE FF。有 BOM 时,检测编码相对可靠。
UTF-8 并不要求 BOM,网页和程序源码通常不用。某些 Windows 桌面软件,特别是直接双击打开 CSV 时,会借助 BOM 判断 UTF-8;因此面向 Excel 的中文 CSV 常导出为 UTF-8 BOM。
BOM 不是万能修复。原文件如果是 GBK,加上 UTF-8 BOM 不会自动转换正文;必须先按 GBK 正确解码,再把 Unicode 文字重新编码成 UTF-8。
GBK、GB18030、Big5 有什么关系
GB2312 是较早的简体中文字符集,GBK 扩展了更多汉字,GB18030 覆盖范围更大,并成为更现代的国家标准。浏览器的 gb18030 解码通常也能读取大量 GBK、GB2312 文件。
Big5 主要用于繁体中文旧系统。相同字节按 GBK 或 Big5 解码时,有时都会得到“看起来像汉字”的结果,只是内容错误。这也是自动检测无法保证 100% 的原因。
日文 Shift_JIS、韩文 EUC-KR 和西文 Windows-1252 也有类似情况。文件越短、数字和 ASCII 越多,越难只凭统计判断来源。
为什么出现 � 后要立刻停下来
� 是 Unicode 替换字符 U+FFFD。它表示解码器遇到无法按当前规则解释的字节。看到少量替换符,不应该继续“差不多能看就行”,因为姓名、SKU、地址或金额附近可能已经损坏。
先切换来源编码候选,观察替换符是否消失,再检查专有名词、生僻字、引号、货币符号和标点。如果所有候选都不正常,文件可能被截断、混合了多种编码,或者之前已经在乱码状态下保存。
Excel 打开 CSV 乱码的稳妥办法
直接双击 CSV,Excel 可能按 Windows 区域设置猜编码。简体中文系统常把无 BOM 文件当作本地代码页,UTF-8 中文因此显示乱码;其他地区的 Excel 又可能表现不同。
优先尝试两种方法:
- 把文件正确解码后导出为 UTF-8 BOM;
- 在 Excel 中使用“数据 → 从文本/CSV”导入,并明确选择 UTF-8 和分隔符。
第二种更可控,因为还可以检查逗号、制表符、引号、日期和数字列。无论哪种方式,都先用副本测试,不要覆盖来源系统导出的原 CSV。
如果还要转成工作簿,可以先修复编码,再使用 CSV / JSON 转 Excel 工具生成 XLSX。手机号、订单号和前导零字段仍要单独抽查,编码正确不等于 Excel 类型推断一定正确。
UTF-8、UTF-8 BOM 和 UTF-16 应该怎样选
网站、接口、数据库导入和跨平台文本通常优先 UTF-8。目标软件明确不接受 BOM 时选普通 UTF-8;主要给 Windows Excel 直接打开的 CSV,可以选 UTF-8 BOM。
UTF-16 常见于部分 Windows、字幕、旧式办公或专业软件,分小端和大端,通常带 BOM。它不是“比 UTF-8 更高级”,文件体积和兼容性也不同。只有目标系统明确要求时才导出 UTF-16。
把 Unicode 再写回 GBK 或 Big5 会丢掉编码范围之外的字符,例如部分生僻字、Emoji 和其他语言。迁移旧系统时,长期方案通常是升级到 UTF-8,而不是不断在旧编码之间来回转换。
一套不会破坏原文件的流程
保留原文件并复制一份工作副本。直接上传原始字节,不要先在乱码编辑器中另存。查看 BOM 和自动候选,逐个切换来源编码,至少抽查标题、首尾几行、中文专名、数字、引号和特殊符号。
预览正确后选择目标编码与换行格式,下载为新文件名。再用真正接收文件的软件打开,核对行数、列数和关键字段。出现 �、空字节或异常控制字符时,不要进入正式导入。
需要检查 BOM、零宽字符和不可见控制符时,可以继续使用 隐藏字符检查工具。如果是字幕乱码,还要在编码修复后用 SRT / VTT 字幕转换工具检查时间轴和格式。
总结
乱码修复的关键不是“替换奇怪字符”,而是保住原始字节,找到正确来源编码,再重新写成目标 Unicode 编码。BOM 可以帮助识别,却不能代替正文转换;自动检测能缩小范围,却不能替代语言和业务抽查。先预览、另存、再用目标软件验证,远比在 Excel 或编辑器里反复试开安全。