You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python打印CSV中阿拉伯语内容异常的解决方法咨询

解决Pandas读取CSV时阿拉伯语显示乱码的问题

嘿,这个问题我之前也碰到过!阿拉伯语这类非ASCII字符显示乱码,大多是文件编码不匹配或者终端/环境不支持对应字符编码导致的,咱们一步步来解决:

1. 先确认CSV文件的编码格式

Pandas默认用系统默认编码读取文件(比如Windows下是gbk),但阿拉伯语CSV通常用utf-8cp1256(阿拉伯语专用编码)或者utf-16保存。你可以用两种方式确认编码:

  • 用记事本打开CSV文件,点击「文件」→「另存为」,看底部的编码选项(通常能看到当前文件的编码)。
  • 用Python的chardet库自动检测:
import chardet
with open("trying11.csv", 'rb') as f:
    file_content = f.read()
    detected_encoding = chardet.detect(file_content)['encoding']
print(f"检测到文件编码:{detected_encoding}")

2. 指定编码读取CSV

拿到正确编码后,在read_csv里加上encoding参数即可:

import pandas as pd
# 把下面的编码换成你检测到的编码,比如utf-8、cp1256
data = pd.read_csv("trying11.csv", encoding='utf-8')
print(data)

如果不知道编码,可以依次尝试utf-8cp1256utf-16,这三个是阿拉伯语文件最常用的编码。

3. 终端显示异常的额外处理

如果已经用对了编码,但终端(比如Windows命令提示符)还是显示乱码,那是因为终端本身不支持阿拉伯语字符或者编码不对:

  • 推荐用Jupyter NotebookPyCharm运行窗口或者VS Code的终端,这些环境对非ASCII字符支持更好。
  • 如果你一定要用Windows命令提示符,可以先执行这条命令设置终端编码为utf-8:
chcp 65001

然后再运行你的Python脚本。

小提醒

保存CSV文件的时候,也要确保是用utf-8(带BOM或不带都可以,Pandas都能处理)编码保存的,不然下次读取还是会出问题。

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

火山引擎 最新活动