[python] python3으로 유니 코드 문자열을 만드는 방법

나는 이것을 사용했다 :

u = unicode(text, 'utf-8')

그러나 Python 3에서 오류가 발생합니다 (또는 … 뭔가를 포함하는 것을 잊었을 수도 있습니다).

NameError: global name 'unicode' is not defined

감사합니다.



답변

리터럴 문자열은 기본적으로 Python3에서 유니 코드입니다.

즉 가정하면 textA는 bytes객체, 그냥 사용text.decode('utf-8')

unicodeof 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]

처음에 왜 유니 코드를 넣었는지 기억이 나지 않지만 이름에 스웨덴 문자 인 åäöÅÄÖ가 포함될 수 있기 때문이라고 생각합니다. 그러나 “유니 코드”없이도 작동합니다.


답변

파이썬 3.x 에서 가장 쉬운 방법

text = "hi , I'm text"
text.encode('utf-8')


답변