← 全部文章

技术与生活 / 一篇记录

中文文件换台机器就乱码,先查默认编码

文件在磁盘上只是字节,读取时才按指定编码变成字符串。同一段代码依赖平台默认值,容易在开发机正常、计划任务或另一台服务器上失败。

先明确这里的区别

同一文件在不同系统上使用默认编码,可能出现不可复现的解码错误。

以下示例使用 Python 3,文件路径和输入值均为练习样本。

with open('demo.txt', encoding='utf-8') as f:
    print(f.read())

怎样判断处理正确

先写入包含中文的 UTF-8 样本,再核对读回内容。

明确输入编码后再选择错误处理策略。忽略解码错误可能悄悄丢失字符;用于数据迁移时,应该优先报告异常字节的位置,而不是直接把错误吞掉。

如果文件来自多种来源,应让导入接口携带编码说明,或者在受控范围内做格式识别。不要靠循环尝试所有编码并接受第一份结果,因为“能解码”不代表文字就一定正确。

需要留意的是,明确编码不等于文件本身就是该编码,输入来源仍需确认。

参考:Python 文档。

搜索文章

输入关键词,找回一篇记录。