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

使用nbconvert转Notebook为HTML时utf-8解码0xd7错误如何解决

解决方案

方案1:修改pandas默认的多级表头拼接分隔符(根源解决)

报错提到的乘号×是pandas生成MultiIndex多级列名时默认使用的分隔符,直接全局替换默认值即可彻底避免该字符生成:

import pandas as pd
# 全局设置多级索引拼接时的分隔符为x,替换默认的×
pd.set_option('display.multi_sparse', False)
pd.set_option('styler.format.multi_level_sep', ' x ')
# 老版本pandas使用下方配置即可
pd.set_option('display.multiindex_sep', ' x ')

配置生效后,所有DataFrame的多级表头拼接都会自动用ASCII字符x代替乘号,后续转换不会再出现非ASCII字符解码问题。

方案2:单次批量替换现有DataFrame的特殊字符

如果不想修改全局配置,可以针对单个DataFrame的列名做定向替换:

# 单层表头替换写法
df.columns = df.columns.str.replace('×', 'x', regex=False)
# 多级表头替换写法
df.columns = pd.Index([str(c).replace('×', 'x') for c in df.columns])

替换完成后再调用IPython展示接口即可。

方案3:直接指定nbconvert的编码参数(无需修改Notebook代码)

如果不想调整现有业务代码,执行转换命令时指定兼容编码即可规避解码报错:

jupyter nbconvert --to html your_notebook.ipynb --encoding=gbk

也可以直接修改nbconvert全局配置文件固定默认编码,不用每次执行命令加参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:18:04