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

Python3读取波斯语TXT拆分单词打印报UnicodeEncodeError如何解决

根因说明

这个报错本质不是读取文件的问题,是Windows系统控制台默认使用GBK等本地字符集,无法编码波斯语这类Unicode字符,执行print操作输出到控制台时触发编码错误。你之前使用的win-unicode-console包已停止维护,不兼容Python3.6+版本,因此不生效。

可行解决方案

  • 方案1:临时修改控制台编码
    运行Python脚本前,先在当前cmd/powershell窗口执行命令chcp 65001,将控制台字符集切换为UTF-8,再运行脚本即可正常打印。
  • 方案2:代码内指定标准输出编码(Python3.7+适用,无需修改控制台配置)
    在代码开头添加以下内容即可:
    import sys
    sys.stdout.reconfigure(encoding='utf-8')
    
  • 方案3:输出到文件验证结果(无需改动编码配置)
    如果不需要直接在控制台查看结果,可将拆分后的单词列表写入UTF-8编码的文件中查看,示例代码:
    with open('output_result.txt', 'w', encoding='utf-8') as f:
        for word in text_list:
            f.write(f"{word}\n")
    

代码优化建议

你当前的代码可以简化,且单词拆分逻辑可优化:

  1. str.split()不带参数时会自动按任意空白字符(空格、换行符、制表符等)拆分,同时自动过滤连续空白产生的空字符串,比split(' ')更适合拆分单词
  2. split方法本身已经返回列表,不需要循环逐个append到新列表

简化后的读取代码如下:

with open('random.txt', 'r', encoding='utf-8') as f:
    text_list = f.read().split()
# 后续打印或存储逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:18:03