Python 's Etree.tostring의 인코딩 문제
문제
Python 2.6.2의 xml.etree.celementtree를 사용하여 XML 문서를 작성하고 있습니다.
import xml.etree.cElementTree as etree
elem = etree.Element('tag')
elem.text = (u"Würth Elektronik Midcom").encode('utf-8')
xml = etree.tostring(elem,encoding='UTF-8')
하루가 끝나면 XML은 다음과 같습니다.
<?xml version='1.0' encoding='UTF-8'?>
<tag>Würth Elektronik Midcom</tag>
Tostring은 인코딩 매개 변수를 무시하고 'ü'를 다른 문자 인코딩으로 인코딩 한 것처럼 보입니다 ( 'ü'는 유효한 UTF-8 인코딩입니다).
내가 잘못하고있는 일에 대한 조언은 크게 감사 할 것입니다.
해결책
텍스트를 두 번 인코딩하고 있습니다. 이 시도:
import xml.etree.cElementTree as etree
elem = etree.Element('tag')
elem.text = u"Würth Elektronik Midcom"
xml = etree.tostring(elem,encoding='UTF-8')
다른 팁
etree.tostring(elem, encoding=str)
돌아올 것입니다 str
하지만 binary
파이썬 3
또한 전달하여 선언하지 않고 유니 코드 문자열로 시리얼링 할 수도 있습니다.
unicode
인코딩으로 기능 (또는str
py3) 또는 이름 '유니 코드'. 이로 인해 바이트 문자열에서 인코딩되지 않은 유니 코드 문자열로 리턴 값이 변경됩니다.
제휴하지 않습니다 StackOverflow