[python] 파이썬에서 문자열을 utf-8로 변환하는 방법


3 Answers

위의 메서드가 작동하지 않으면 utf-8로 변환 할 수없는 문자열의 일부를 무시하도록 Python에 지시 할 수 있습니다.

stringnamehere.decode('utf-8', 'ignore')
Question

내 파이썬 서버에 utf-8 문자를 보내는 브라우저가 있지만 쿼리 문자열에서이를 검색 할 때 파이썬에서 반환하는 인코딩은 ASCII입니다. 일반 문자열을 utf-8로 변환하려면 어떻게해야합니까?

참고 : 웹에서 전달 된 문자열은 이미 UTF-8로 인코딩되어 있으므로 Python을 ASCII가 아닌 UTF-8로 처리하려고합니다.




이해가 잘된다면 코드에 UTF-8로 인코딩 된 바이트 문자열이 있습니다.

바이트 열을 유니 코드 문자열로 변환하는 것을 디코딩이라고합니다 (unicode -> byte-string은 인코딩 임).

unicode 함수 또는 decode 메서드를 사용하면됩니다. 어느 한 쪽:

unicodestr = unicode(bytestr, encoding)
unicodestr = unicode(bytestr, "utf-8")

또는:

unicodestr = bytestr.decode(encoding)
unicodestr = bytestr.decode("utf-8")



ord () 및 unichar ()를 사용하여 번역하십시오. 모든 유니 코드 문자는 인덱스와 같은 숫자를 가지고 있습니다. 따라서 파이썬은 char와 그의 숫자 사이를 변환하는 몇 가지 방법을 가지고 있습니다. 단점은 ñ 예입니다. 희망이 도움이 될 수 있습니다.

>>> C = 'ñ'
>>> U = C.decode('utf8')
>>> U
u'\xf1'
>>> ord(U)
241
>>> unichr(241)
u'\xf1'
>>> print unichr(241).encode('utf8')
ñ



city = 'Ribeir\xc3\xa3o Preto'
print city.decode('cp1252').encode('utf-8')



Related