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

Windows下PyCharm中ExifTool处理特殊字符乱码问题求助

Windows下Python调用ExifTool读取图片元数据特殊字符乱码解决方法

问题分析

你遇到的UnitedHealth’s这类乱码,本质是UTF-8文本被错误当作Windows-1252(或Latin-1)解码后再次编码导致的双重编码问题,核心是ExifTool输出编码与Python读取编码不匹配。

解决方法

1. 强制ExifTool输出UTF-8(从源头解决)

在调用ExifTool时添加-charset utf8参数,强制它以UTF-8格式输出元数据,同时Python保持UTF-8读取:

import subprocess
import json

image_path = "你的图片路径"
# 关键:添加-charset utf8参数指定ExifTool输出编码
proc = subprocess.run(
    ["exiftool", "-j", "-charset", "utf8", image_path],
    capture_output=True,
    text=True,
    check=True,
    encoding="utf-8"
)
# 解析JSON格式的元数据
metadata = json.loads(proc.stdout)
print("Description:", metadata[0]["Description"])

2. 修复已生成的乱码字符串

如果已经得到乱码内容,可以通过反向编码转换修复:

garbled_desc = "UnitedHealth’s Optum blah blah blah"
# 将乱码按Latin-1解码为字节,再用UTF-8解码得到正确字符串
fixed_desc = garbled_desc.encode("latin-1").decode("utf-8")
print(fixed_desc)

3. 确认PyCharm编码设置(排除显示问题)

即使代码处理正确,控制台编码错误也会导致显示乱码,确认以下设置:

  • 打开PyCharm设置(File > Settings)
  • 搜索Console Encoding,设置为UTF-8
  • 进入Editor > File Encodings,将Global Encoding、Project Encoding都设为UTF-8
  • 重启PyCharm后测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:47:07