Python打印CSV中阿拉伯语内容异常的解决方法咨询
解决Pandas读取CSV时阿拉伯语显示乱码的问题
嘿,这个问题我之前也碰到过!阿拉伯语这类非ASCII字符显示乱码,大多是文件编码不匹配或者终端/环境不支持对应字符编码导致的,咱们一步步来解决:
1. 先确认CSV文件的编码格式
Pandas默认用系统默认编码读取文件(比如Windows下是gbk),但阿拉伯语CSV通常用utf-8、cp1256(阿拉伯语专用编码)或者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-8、cp1256、utf-16,这三个是阿拉伯语文件最常用的编码。
3. 终端显示异常的额外处理
如果已经用对了编码,但终端(比如Windows命令提示符)还是显示乱码,那是因为终端本身不支持阿拉伯语字符或者编码不对:
- 推荐用Jupyter Notebook、PyCharm运行窗口或者VS Code的终端,这些环境对非ASCII字符支持更好。
- 如果你一定要用Windows命令提示符,可以先执行这条命令设置终端编码为utf-8:
chcp 65001
然后再运行你的Python脚本。
小提醒
保存CSV文件的时候,也要确保是用utf-8(带BOM或不带都可以,Pandas都能处理)编码保存的,不然下次读取还是会出问题。
内容的提问来源于stack exchange,提问作者Lam Moh




