csv 파일에 utf-8 문자를 쓰는 방법은 무엇입니까?utf-8 형식의 파이썬 목록을 CSV로 작성
내 데이터와 코드 :
# -*- coding: utf-8 -*-
l1 = ["žžž", "ččč"]
l2 = ["žžž", "ččč"]
thelist = [l1, l2]
import csv
import codecs
with codecs.open('test', 'w', "utf-8-sig") as f:
writer = csv.writer(f)
for x in thelist:
print x
for mem in x:
writer.writerow(mem)
오류 메시지 :
Traceback (most recent call last):
File "2010rudeni priimti.py", line 263, in <module>
writer.writerow(mem)
File "C:\Python27\lib\codecs.py", line 691, in write
return self.writer.write(data)
File "C:\Python27\lib\codecs.py", line 351, in write
data, consumed = self.encode(object, self.errors)
File "C:\Python27\lib\encodings\utf_8_sig.py", line 82, in encode
return encode(input, errors)
File "C:\Python27\lib\encodings\utf_8_sig.py", line 15, in encode
return (codecs.BOM_UTF8 + codecs.utf_8_encode(input, errors)[0], len(input))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 11: ordinal not in range(128)
을 눌러 계속하려면 아무 키나. . .
내 실수는 무엇입니까?
부수적으로, 소스 코드에 인코딩을 지정하지 않았습니다. 즉, 파이썬이이를 라틴어 -1로 해석 할 것입니다 (아마도 경고와 함께 해석 할 것입니다. 그러나 당신은 그것을 보지 않거나 무시하고있는 것 같습니다) it?) ...하지만 라틴어 -1에는'ž' 문자가 없기 때문에 분명히 다른 것으로 편집하고 있습니다. 따라서 현재 문제를 해결하더라도 mojibake를 파일에 작성하려고합니다. 예를 들어 UTF-8 편집기를 사용하는 경우 첫 번째 문자열은'žžž '로 끝납니다. – abarnert
''CHARSET = "$ (파일 -bi"$ i "| awk -F"= " '{인쇄 $ 2}')" [ "$ CHARSET"! = utf-8]; then iconv -f "$ CHARSET"-t utf8 "$ i"-o outfile fi' – Vor