2015-02-09 26 views
0

導出CSV問題Python的Django的導出CSV與日本文字

#================================== 
Python 2.7.6 
Django 1.7 
#================================== 

# Get from MySQL 
{'SearchItem_1_JP': u'\u30a2\u30af\u30bb\u30b5\u30ea\u30fc'} # アクセサリー 
searchitem_1_jp = searchitem['SearchItem_1_JP'] 

# Output CSV 
response = HttpResponse(content_type='text/csv') 
response['Content-Disposition'] = 'attachment; filename="test_export.csv"' 
writer = csv.writer(response) 
writer.writerow([searchitem_1_jp.encode('utf8')]) 
writer.writerow([searchitem_1_jp.encode('U8')]) 
writer.writerow([searchitem_1_jp.encode('UTF')]) 
writer.writerow([searchitem_1_jp.encode('utf8')]) 
writer.writerow([searchitem_1_jp.encode('utf_8_sig')]) 

writer.writerow([searchitem_1_jp.encode('ascii', 'ignore')])   

writer.writerow([searchitem_1_jp.encode('cp932')]) 

writer.writerow([searchitem_1_jp.encode('euc_jp')]) 
writer.writerow([searchitem_1_jp.encode('euc_jis_2004')]) 
writer.writerow([searchitem_1_jp.encode('euc_jisx0213')]) 

writer.writerow([searchitem_1_jp.encode('iso2022_jp')]) 
writer.writerow([searchitem_1_jp.encode('iso2022_jp_1')]) 
writer.writerow([searchitem_1_jp.encode('iso2022_jp_2')]) 

writer.writerow([searchitem_1_jp.encode('iso2022_jp_2004')]) 
writer.writerow([searchitem_1_jp.encode('iso2022_jp_3')]) 
writer.writerow([searchitem_1_jp.encode('iso2022_jp_ext')]) 

writer.writerow([searchitem_1_jp.encode('shift_jis')]) 
writer.writerow([searchitem_1_jp.encode('shift_jis_2004')]) 
writer.writerow([searchitem_1_jp.encode('shift_jisx0213')]) 

return response 

============================== ====

我已經嘗試過所有的日語編解碼方法。 但是,導出的CSV文件的數據仍然是亂碼。

參考:https://docs.python.org/2/library/codecs.html#codec-base-classes

+0

您是如何解決這個問題的?我有同樣的問題 – ccsakuweb 2016-07-01 20:54:47

回答

0

Python的內置CSV庫是不兼容Unicode編碼。您可以嘗試下拉式更換unicodecsv

+0

我試過了,但仍然在csv中出現亂碼。 – Yves 2015-02-10 10:52:42