带有阿拉伯字符的CSV文件在Excel中显示为符号

f4t66c6m  于 2022-12-06  发布在  其他
关注(0)|答案(6)|浏览(255)

我正在使用python从twitter中提取阿拉伯语tweet并将其保存为CSV文件,但当我在excel中打开保存的文件时,阿拉伯语显示为符号。
请问问题出在哪里?

tpxzln5u

tpxzln5u1#

这是我在使用Microsoft Excel打开包含阿拉伯字符的CSV文件时经常遇到的问题。请尝试以下解决方法,我在Windows和Mac OS上的最新版本的Microsoft Excel上测试了该方法:
1.在空白工作簿上打开Excel
1.在数据选项卡中,单击来自文本按钮(如果未激活,请确保选择空单元格)
1.浏览并选择CSV文件
1.在“文本导入向导”中,将文件源更改为“Unicode(UTF-8)
1.转到下一步,从分隔符中选择文件中使用的分隔符,例如逗号
1.完成并选择导入数据的位置
阿拉伯字符应正确显示。

z5btuh9x

z5btuh9x2#

只需使用encoding ='utf-8-sig'而不是encoding ='utf-8',如下所示:

import csv

data = u"اردو"

with(open('example.csv', 'w', encoding='utf-8-sig')) as fh:
    writer = csv.writer(fh)
    writer.writerow([data])

在我的机器上工作。

mftmpeh8

mftmpeh83#

唯一的解决方案,我发现保存到一个excel文件从python的阿拉伯语是使用Pandas和保存到xlsx扩展名,而不是csv,xlsx似乎百万倍更好这里的代码,我已经放在一起,为我工作

import pandas as pd
def turn_into_csv(data, csver):
    ids = []
    texts = []
    for each in data:
        texts.append(each["full_text"])
        ids.append(str(each["id"]))

    df = pd.DataFrame({'ID': ids, 'FULL_TEXT': texts})
    writer = pd.ExcelWriter(csver + '.xlsx', engine='xlsxwriter')
    df.to_excel(writer, sheet_name='Sheet1', encoding="utf-8-sig")

    # Close the Pandas Excel writer and output the Excel file.
    writer.save()
ffdz8vbo

ffdz8vbo4#

众所周知,Excel有一个糟糕的csv导入系统。长话短说,如果在同一个系统上导入一个刚刚导出的csv文件,它将顺利工作。否则,csv文件将使用Windows系统编码和分隔符。
一个相当笨拙但健壮的系统是使用LibreOffice或Oracle OpenOffice。除了csv模块之外,这两个系统在任何特性上都远远超过Excel:它们将允许您指定分隔符和可选的引用字符沿着csv文件的编码,并且您将能够以xslx保存结果文件。

ljsrvy3e

ljsrvy3e5#

虽然我的CSV文件编码是UTF-8;但是使用记事本再次明确地重做它就解决了这个问题。

步骤:

  • 在记事本中打开CSV文件。
  • 单击文件--〉另保存为...
  • 在“编码”下拉列表中,选择UTF-8。
  • 使用.csv扩展名重命名文件。
  • 按一下“储存”。
  • 使用Excel重新打开该文件。
30byixjq

30byixjq6#

最快的方法是从python将文件保存到.csv之后:
1.使用记事本++打开.csv文件
1.从编码下拉菜单中选择UTF-8-BOM
1.单击“保存为”并使用相同的名称和.csv扩展名(例如,数据.csv)保存在,并保持文件类型为.txt
1.请使用Microsoft Excel重新打开该文件。

相关问题