Python写入类XML文本文件触发UnicodeEncodeError问题求助
解决UnicodeEncodeError: 'charmap'编解码器无法编码字符的问题
问题原因
读取文件时你指定了utf8编码,但写入新文件时未指定编码——Windows环境下Python默认使用系统默认编码(比如cp1252),而原文件包含cp1252无法映射的特殊字符,直接触发编码失败。
解决方案
打开输出文件时显式指定encoding="utf8",确保读写编码完全一致:
修改后的代码:
# 用with语句自动管理文件句柄,无需手动关闭 with open("C:/Users/pc/Desktop/talabat yarmook.txt", "r", encoding="utf8") as file_handle_tester: with open("C:/Users/pc/Desktop/parced_text.txt", "w", encoding="utf8") as sec_file: a = 'com.talabat:id/textView_restaurantName' for line in file_handle_tester: line = line.strip() sec_file.write(line + "\n") # 补充换行符,避免所有内容挤在一行
补充说明
- 用
with语句处理文件是Python的最佳实践,能自动释放资源,避免漏关文件 - 原代码里的
strip()会移除行尾换行符,写入时手动加\n才能保留原文件的行结构 - 你之前尝试的“存列表再写入”不影响编码问题,核心矛盾始终是写入时的编码设置;字节读写若未对应正确编码,也无法解决根本问题
内容的提问来源于stack exchange,提问作者Abdullah M. Adil
相关产品推荐
相关产品推荐

