文件读取字符间隔异常与UTF-8编码解码错误求助
字符间隔异常原因及解决办法
原因分析
字符间出现多余空格是因为编码解析不匹配:
- 你的文件实际采用UTF-16编码,开头的
0xff字节是UTF-16的BOM(字节顺序标记),这也是用utf-8解码时报错的核心原因——utf-8不识别该BOM结构。 - 你用
cp932(日文Shift-JIS编码)读取UTF-16文件时,会把UTF-16中每个字符的两个字节拆成独立的cp932字符解析。比如原文件中1的UTF-16编码是0x31 0x00,cp932将0x31解析为1,0x00解析为空字符,打印时空字符显示为空格,最终形成字符间的间隔。
解决步骤
- 使用正确的编码
utf-16打开文件,Python会自动识别并处理BOM:
import os with open(os.path.join(root, file), "r", encoding='utf-16') as content_file: content = content_file.read() print(content)
- 修正代码中的小错误:你之前打印的是文件对象
content_file,而非读取到的内容变量(还拼错了变量名continut,建议改为content),修正后才能正确输出文件内容。
内容的提问来源于stack exchange,提问作者George
相关产品推荐
相关产品推荐

