파이썬의 다음 stdlib에서 codecs
모듈의 여러 옵션을 사용하면 확장 된 문자가 처리 방법에 따라,이 있습니다. 그 중
>>> import codecs
>>> u = u'nästy chäräctörs with å and co.'
>>> encode = codecs.get_encoder('ascii')
>>> encode(u)
'
Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 1: ordinal not in range(128)
>>> encode(u, 'ignore')
('nsty chrctrs with and co.', 31)
>>> encode(u, 'replace')
('n?sty ch?r?ct?rs with ? and co.', 31)
>>> encode(u, 'xmlcharrefreplace')
('nästy chäräctörs with å and co.', 31)
>>> encode(u, 'backslashreplace')
('n\\xe4sty ch\\xe4r\\xe4ct\\xf6rs with \\xe5 and co.', 31)
희망 한 요구를 충족 할 Python codecs module documentation에서 사용할 수있는 더 많은 정보가있다
.
아스키에는 å ä ö 및 기타가 없습니다. 다른 것을 원하십니까? iso 8859-1 (latin-1) 또는 utf-8? – nos
아마도 조금 질문을 다시 정리해야합니다. Django 용 템플릿 태그를 개발하는 동안 문제가 발생했습니다. 정상적인 문자열을 사용할 때는 잘 작동하지만 정확히 동일한 유니 코드 문자열을 사용하는 동안 실패합니다. –
맨 위 문자열은 UTF 형식이 아닙니다. UTF는 유니 코드 인코딩이며, 이는 유니 코드 문자를 나타내는 일련의 바이트임을 의미합니다. 가지고있는 것은 유니 코드 문자열로, 문자 시퀀스입니다. 각각의 바이트 수는 무의미하며 파이썬에서 결정하는 것은 불가능합니다. 구별은 단순한 보행이 아닙니다. 파이썬이 텍스트로 무엇을하는지 이해하면 이러한 유니 코드 {En, De} codeError's를 피할 수 있습니다. – jcdyer