utf-8 문자를 Python 서버로 보내는 브라우저가 있지만 쿼리 문자열에서 검색하면 Python이 반환하는 인코딩은 ASCII입니다. 일반 문자열을 utf-8로 어떻게 변환 할 수 있습니까?
참고 : 웹에서 전달 된 문자열은 이미 UTF-8로 인코딩되어 있으므로 ASCII가 아닌 UTF-8로 처리하도록 Python을 만들고 싶습니다.
답변
>>> plain_string = "Hi!"
>>> unicode_string = u"Hi!"
>>> type(plain_string), type(unicode_string)
(<type 'str'>, <type 'unicode'>)
^ 이것은 바이트 문자열 (plain_string)과 유니 코드 문자열의 차이점입니다.
>>> s = "Hello!"
>>> u = unicode(s, "utf-8")
^ 유니 코드로 변환하고 인코딩을 지정하십시오.
답변
위의 방법이 작동하지 않으면 파이썬에게 utf-8로 변환 할 수없는 문자열 부분을 무시하도록 지시 할 수 있습니다.
stringnamehere.decode('utf-8', 'ignore')
답변
약간 과잉 일 수 있지만 동일한 파일에서 ASCII 및 유니 코드로 작업 할 때 디코딩을 반복하는 것이 어려울 수 있습니다. 이것은 내가 사용하는 것입니다.
def make_unicode(input):
if type(input) != unicode:
input = input.decode('utf-8')
return input
답변
.py 파일 맨 위에 다음 줄 추가 :
# -*- coding: utf-8 -*-
다음과 같이 스크립트에서 직접 문자열을 인코딩 할 수 있습니다.
utfstr = "ボールト"
답변
내가 올바르게 이해하면 코드에 utf-8로 인코딩 된 바이트 문자열이 있습니다.
바이트 열을 유니 코드 문자열로 변환하는 것을 디코딩이라고합니다 (유니 코드-> 바이트 열이 인코딩 임).
유니 코드 함수 또는 디코드 방법 을 사용하여이를 수행합니다 . 어느 한 쪽:
unicodestr = unicode(bytestr, encoding)
unicodestr = unicode(bytestr, "utf-8")
또는:
unicodestr = bytestr.decode(encoding)
unicodestr = bytestr.decode("utf-8")
답변
city = 'Ribeir\xc3\xa3o Preto'
print city.decode('cp1252').encode('utf-8')
답변
Python 3.6에서는 내장 unicode () 메소드가 없습니다. 문자열은 기본적으로 이미 유니 코드로 저장되며 변환이 필요하지 않습니다. 예:
my_str = "\u221a25"
print(my_str)
>>> √25