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

Python写入文件时如何正确保存ąęćż等多语言特殊字符

网页特殊字符写入TXT被替换为�的解决方法

�是编码不匹配的典型报错标记,本质是内容读取、写入环节使用的编码格式不支持对应特殊字符,或是读写环节编码不一致,常见于默认使用GBK、ASCII这类不支持多语言特殊字符的编码处理东欧语种(含ą、ę、ć、ż等波兰语字符)内容的场景,按以下方法处理即可正常写入:

通用处理原则

  • 读取网页内容时,解码规则必须和网页实际声明的字符集保持一致
  • 写入文件时优先选择支持全语种特殊字符的UTF-8编码,不要依赖操作系统默认编码

分场景操作方案

代码脚本写入场景(以最常用的Python为例)

绝大多数编码问题出在脚本写文件时未指定编码,Windows系统默认会用GBK编码写入文件,碰到非中英文字符就会转成�。

  1. 第一步:正确解码网页内容,不要直接用默认解码逻辑
    优先从网页响应头、meta标签提取网页声明的编码,通用稳妥的自动识别写法如下:
    import requests
    resp = requests.get("目标网页地址")
    # 自动识别网页实际编码,避免默认解码错误
    resp.encoding = resp.apparent_encoding
    page_content = resp.text
    
  2. 第二步:写入文件时强制指定UTF-8编码
    打开文件时必须显式传入encoding="utf-8"参数,跳过系统默认编码逻辑:
    with open("存储结果.txt", "w", encoding="utf-8") as f:
        f.write(page_content)
    
    提示:Python2对多语言编码支持较差,建议升级到Python3处理多语言文本,能减少90%以上的编码问题。

手动复制内容保存场景

如果是手动复制网页内容到本地存为TXT:

  • 用系统自带记事本保存时,在保存弹窗底部的「编码」下拉栏,不要选默认的ANSI,手动切换为UTF-8后再保存
  • 优先用VS Code、Notepad++这类对多语言支持更好的文本编辑器,新建文件时默认选择UTF-8编码,不会自动替换特殊字符

常见踩坑排查

  • 不要使用GBK、ASCII这类字符覆盖范围有限的编码存储多语言内容,这类编码本身就不包含ą、ę、ć、ż等特殊字符,必然会出现替换问题
  • 如果读取到的网页内容本身就已经显示为�,说明解码环节就用错了编码,需要先修正读取阶段的编码配置,再处理写入逻辑
  • 部分老旧东欧语种网页可能使用iso-8859-2字符集,读取时对应指定该编码解码后,再转成UTF-8格式写入文件即可,不要直接跨编码转存

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:45:43