Я пытаюсь написать программу на python, чтобы получить результаты google translate с нескольких языков и записать их в файл csv.Большая часть кода работает, но я сталкиваюсь с проблемами юникода.
Текущий код:
WordTable = open('Translated.csv', 'w', newline="", encoding = 'utf-8-sig')
WordWrite = unicodecsv.writer(WordTable)
for row in WordOut:
print(row[0])
row = row + [Translator().translate(row[0], src = 'en', dest='es').text]
row = row + [Translator().translate(row[0], src = 'en', dest='ar').text]
row = row + [Translator().translate(row[0], src = 'en', dest='zh-CN').text]
row = row + [Translator().translate(row[0], src = 'en', dest='ru').text]
print(len(row), row)
WordWrite.writerow(row)
Что я пробовал после прочтения здесь и в других местах:
текущий код: приводит к «UnicodeEncodeError:« символ charmap не может кодировать символы ». Это также происходит, когда вообще не используются команды или опции кодирования.
, изменяющиеперевод строки на:
row = row + [Translator().translate(row[0], src = 'en', dest='ru').text.encode('utf-8-sig')]
или эквивалентный: код выполняется, но выплевывает более длинные версии "b '\ xef \ xbb \" и т. д.
Am такжезаинтересован в объяснении того, что происходит, если возможно (что в каком формате, когда он изменяется, как он вводится и т. д.), если это возможно. Объяснения, которые я читал в другом месте, могут запутаться.
Редактировать: это в Python 3.4