You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python读取txt文件时打印或存储内容额外出现Â字符问题求解

根本原因

你遇到的乱码问题是典型的编码解码不匹配导致的字符映射错误,核心触发逻辑如下:

  • 你的pass.txt文件实际采用UTF-8编码存储,其中£符号的UTF-8编码为双字节序列0xC2 0xA3
  • Python 3的open()函数如果不传encoding参数,会默认使用操作系统的默认编码(Windows系统多为GBK/CP936,部分旧系统会默认使用Latin-1/ISO-8859-1)对文件字节流解码
  • 当系统默认编码为Latin-1时,会把0xC2单独解码为Â字符,0xA3单独解码为£字符,最终就会出现你观察到的内容前额外插入Â的现象
复现验证

你可以通过以下代码验证该逻辑:

# £对应的UTF-8原始字节
pound_bytes = b"\xc2\xa3"
# 错误用Latin-1解码
print(pound_bytes.decode("latin-1"))  # 输出:£
# 正确用UTF-8解码
print(pound_bytes.decode("utf-8"))  # 输出:£
修复方案

打开文件时显式指定文件的实际编码即可,无需额外做字符替换,修改后的代码如下:

with open("pass.txt", encoding="utf-8") as f:
    first_line = f.readline().rstrip()
    print(first_line)

如果确认文件不是UTF-8编码,只需把encoding参数的取值替换为文件实际对应的编码(如GBK、CP936等)即可。

内容的提问来源于stack exchange,提问作者iBud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 19:45:03