我正在尝试用阿拉伯语脚本编写CSV。我已将字符串编码为utf-8并将其写入csv。
问题是,如果我在csv中打开文件,它会显示奇怪的字符,如آلز
سندويتش كاÙيه
但是如果我在记事本++中打开文件,它会显示预期的阿拉伯文字。
我检查了记事本++并将编码转换为utf-8而不是没有BOM的utf-8,现在它在csv阅读器(excel)中工作正常。那么我该如何在app引擎中将编码设置为“带有BOM的utf-8”
我正在使用unicodecsv.writer来编写csv
writer = unicodecsv.writer(self.response.out)
row = []
row.append(transaction.name.encode('utf8'))
writer.writerow(row)
要写入的数据来自数据存储区
答案 0 :(得分:1)
要使用UTF-8 BOM编写CSV,只需先写入BOM;您可以使用codecs.BOM_UTF8
:
import codecs
self.response.out.write(codecs.BOM_UTF8)
writer = csv.writer(self.response.out)
row = []
row.append(transaction.name.encode('utf8'))
writer.writerow(row)
Excel 2007 and newer选择BOM并使用UTF-8正确打开这样的CSV文件。傻微软!