簡體   English   中英

編碼/解碼Unicode和編寫CSV

[英]Encoding/Decoding Unicode and Writing CSV

我正在嘗試將非拉丁語言的單詞寫到CSV,但是無法以正確的形式寫出單詞。

foreign='а также'
with open('C:\\Users\\Lance\\Desktop\\Programs\\Database Builder\\Russian Test.csv', 'wb') as outfile:
    outfile.write((foreign).encode('utf-8'))

此代碼的輸出是:

атак涵µ

謝謝!

它可以正確寫入文件,但是您可能正在使用使用Windows-1252編碼的編輯器或控制台來顯示文件。

來自美國Windows cmd.exe控制台的示例:

C:\>type "Russian Test.csv"
а также
C:\>chcp 1252
Active code page: 1252

C:\>type "Russian Test.csv"
а также
C:\>chcp 65001
Active code page: 65001

C:\>type "Russian Test.csv"
а также

注意:代碼頁65001在Windows上是UTF-8編碼。

由於您似乎正在使用Python 3,因此應該改而直接寫Unicode字符串:

foreign='а также'
with open('Russian Test.csv', 'w', encoding='utf8') as outfile:
    outfile.write(foreign)

首次安裝unicodecsv

pip install unicodecsv

然后將其導入您的腳本中

import unicodecsv as csv

為我工作。

首先,將數據寫入csv文件取決於csv庫,正確的腳本應為:

import csv
with open('path/to/test.csv', 'wb') as f:
    writer = csv.writer(f)
    for line in <your_data>:
       writer.writerow(line)

其次,由於csv庫在python 2x中不支持unicode,因此您需要使用能夠很好地處理unicode的替代方法-https: //github.com/jdunck/python-unicodecsv ,您要做的就是簡單地安裝Unicode版本的csv庫,並在第一行添加簡短的導入表達式:

pip install unicodecsv
import unicodecsv as csv
...

請記住,通過在每個字符串前面添加“ u”,將所有字符串轉換為unicode。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM