문제

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&#195;&#188;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) 또는 이름 '유니 코드'. 이로 인해 바이트 문자열에서 인코딩되지 않은 유니 코드 문자열로 리턴 값이 변경됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top