나는 이것을 사용했다 :
u = unicode(text, 'utf-8')
그러나 Python 3에서 오류가 발생합니다 (또는 … 뭔가를 포함하는 것을 잊었을 수도 있습니다).
NameError: global name 'unicode' is not defined
감사합니다.
답변
리터럴 문자열은 기본적으로 Python3에서 유니 코드입니다.
즉 가정하면 text
A는 bytes
객체, 그냥 사용text.decode('utf-8')
unicode
of Python2는 Python3에서와 동일 str
하므로 다음과 같이 작성할 수도 있습니다.
str(text, 'utf-8')
너가 선호한다면.
답변
Python 3.0의 새로운 기능 은 다음과 같습니다.
모든 텍스트는 유니 코드입니다. 그러나 인코딩 된 유니 코드는 이진 데이터로 표시됩니다.
utf-8을 출력하고 있는지 확인하려면 3.0의 유니 코드에 대한이 페이지의 예제가 있습니다 .
b'\x80abc'.decode("utf-8", "strict")
답변
해결 방법으로 다음을 사용하고 있습니다.
# Fix Python 2.x.
try:
UNICODE_EXISTS = bool(type(unicode))
except NameError:
unicode = lambda s: str(s)
답변
이 방법으로 \ uFE0F, \ u000A 등과 같은 문자를 변환하는 문제를 해결했습니다. 또한 16 바이트로 인코딩 된 이모지도 있습니다.
example = 'raw vegan chocolate cocoa pie w chocolate & vanilla cream\\uD83D\\uDE0D\\uD83D\\uDE0D\\u2764\\uFE0F Present Moment Caf\\u00E8 in St.Augustine\\u2764\\uFE0F\\u2764\\uFE0F '
import codecs
new_str = codecs.unicode_escape_decode(example)[0]
print(new_str)
>>> 'raw vegan chocolate cocoa pie w chocolate & vanilla cream\ud83d\ude0d\ud83d\ude0d❤️ Present Moment Cafè in St.Augustine❤️❤️ '
new_new_str = new_str.encode('utf-16', 'surrogatepass').decode('utf-16')
print(new_new_str)
>>> 'raw vegan chocolate cocoa pie w chocolate & vanilla cream??❤️ Present Moment Cafè in St.Augustine❤️❤️ '
답변
내가 수년 동안 사용한 Python 2 프로그램에는 다음 줄이 있습니다.
ocd[i].namn=unicode(a[:b], 'utf-8')
이것은 Python 3에서 작동하지 않았습니다.
그러나 프로그램은 다음과 함께 작동하는 것으로 나타났습니다.
ocd[i].namn=a[:b]
처음에 왜 유니 코드를 넣었는지 기억이 나지 않지만 이름에 스웨덴 문자 인 åäöÅÄÖ가 포함될 수 있기 때문이라고 생각합니다. 그러나 “유니 코드”없이도 작동합니다.
