已关闭
[Bug] file_manager.py 中 read_json_file 和 read_common_file 缺少 encoding 参数,Windows 下可能乱码或报错 #35
叶蕴瑶创建于  6月4日关闭于  6月22日
叶蕴瑶
叶蕴瑶
6月4日 创建

Bug 描述

msprof_analyze/prof_common/file_manager.py 中,read_json_file(第 43 行)和 read_common_file(第 107 行)的 open() 调用缺少 encoding 参数:

# 第 43 行 - 读 JSON 文件
with open(file_path, "r") as json_file:       # 缺少 encoding

# 第 107 行 - 读文本文件
with open(file_path, 'r') as f:               # 缺少 encoding

但同一文件中第 90 行的 read_yaml_file 已经正确指定了 encoding:

# 第 90 行 - 读 YAML 文件
with open(file_path, "r", encoding="utf-8") as yaml_file:  # 正确

影响

在 Windows 系统上(默认编码为 GBK/CP936),如果 JSON 或文本文件包含中文(例如算子名称、路径中的中文目录名),open() 会使用系统默认编码而非 UTF-8,导致:

  • UnicodeDecodeError 异常
  • 或者静默乱码,影响后续数据分析结果

复现步骤

  1. 在 Windows 上运行 msprof-analyze
  2. 分析一个路径或算子名称包含中文的 profiling 数据
  3. read_json_file 或 read_common_file 抛出 UnicodeDecodeError

修复建议

与第 90 行保持一致,为第 43 行和第 107 行补上 encoding="utf-8":

with open(file_path, "r", encoding="utf-8") as json_file:
with open(file_path, 'r', encoding="utf-8") as f:
likedislike
Mrtutu
Mrtutu成员
6月4日 评论:

👋 您好,欢迎向 MindStudio-Profiler-Analyze 提交 Issue!
我们已收到您的反馈,感谢你对开源社区的支持。🎉

📅处理时效: 维护团队将在24小时内 查看并回复您的问题(工作日)。
🔍自助查询: 在等待期间,建议您先查阅以下资料,可能已有解决方案:

📖 MindStudio MindStudio-Profiler-Analyze官方文档
📝 贡献者指南

请确保 Issue 描述清晰,包含复现步骤和日志,这将帮助我们更快定位问题。谢谢!

likedislike
MrtutuMrtutu成员
6月4日 添加了label:triaged
ascend-robotascend-robot成员
6月4日 添加了label:bug
fanglanyuefanglanyue成员
6月11日 关联了pull request:msprof-analyze安全策略精简
fanglanyue
fanglanyue成员
6月11日 评论:

/label add resolved

likedislike
ascend-robotascend-robot成员
6月11日 添加了label:resolved
ascend-robot
ascend-robot成员
6月18日 评论:

您好,当前Issue标记为resolved且有一段时间未进一步更新,因此我们将其标记为'stale'(闲置)状态。若您认为这是误操作,可通过添加任意评论来去除'stale'标签。标记为stale的Issue在4天内无更新活动将自动关闭。

likedislike
ascend-robotascend-robot成员
6月18日 添加了label:stale
Yyuliangbin成员
6月22日 issue状态由 TODO 改变为 DONE
Yyuliangbin成员
6月22日 关闭了 issue