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

Windows导出含特殊字符编码异常的Excel文件Python3处理方案咨询

Python3 处理Windows Excel编码替换问题

方案1:批量替换异常字符(针对字符本身错误)

如果Excel中实际存储的字符与目标字符不符(比如右单引号\u2019代替了普通单引号'),可以用pandas批量替换所有文本列的异常字符:

  1. 安装依赖库:
pip install pandas openpyxl
  1. 处理代码:
import pandas as pd

# 定义异常字符与目标字符的映射关系
replacement_map = {
    '\u2019': "'",    # 替换右单引号为普通单引号
    '\u00e9': 'é',    # 替换对应字符为é
    '\x90m': 'É'      # 替换\x90m为É
}

# 读取Excel文件
df = pd.read_excel('your_input_file.xlsx')

# 遍历所有文本类型列,执行替换
for col in df.select_dtypes(include=['object']).columns:
    df[col] = df[col].replace(replacement_map, regex=True)

# 保存修复后的文件
df.to_excel('fixed_output_file.xlsx', index=False)

方案2:处理Unicode转义字符串(针对显示为转义文本的情况)

如果Excel中显示的是\u2019、\u00e9这类转义字符串而非对应字符,可以先解析转义再替换:

import pandas as pd
import ast

def resolve_escapes(text):
    if isinstance(text, str):
        try:
            # 解析Unicode转义字符串
            return ast.literal_eval(f'"{text}"')
        except (SyntaxError, ValueError):
            # 解析失败则返回原文本
            return text
    return text

# 读取文件
df = pd.read_excel('your_input_file.xlsx')

# 先解析转义,再执行字符替换
for col in df.select_dtypes(include=['object']).columns:
    df[col] = df[col].apply(resolve_escapes)
    df[col] = df[col].replace({'\\x90m': 'É'}, regex=True)

# 保存文件
df.to_excel('fixed_output_file.xlsx', index=False)

补充说明

  • 若处理.xls格式文件,需安装xlrd库(注意xlrd 2.0+版本不再支持xls格式,需安装xlrd==1.2.0)。
  • 替换映射可根据实际情况调整,确保键是Excel中实际存在的异常内容,值为目标字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:42:47