[PYTHON] UTF-8 8 진수를 유니 코드 코드 포인트로 변환
PYTHONUTF-8 8 진수를 유니 코드 코드 포인트로 변환
UTF-8 8 중 옥텟 세트가 있고이를 유니 코드 코드 포인트로 다시 변환해야합니다. 파이썬에서는 어떻게 할 수 있습니까?
예 : UTF-8 옥텟 [ '0xc5', '0x81']은 0x141 코드 포인트로 변환되어야합니다.
해결법
-
==============================
1.Python 3.x에서 str은 유니 코드 텍스트의 클래스이고 bytes는 8 진수를 포함하는 클래스입니다.
Python 3.x에서 str은 유니 코드 텍스트의 클래스이고 bytes는 8 진수를 포함하는 클래스입니다.
"옥텟"으로 '0xc5'( '\ xc5'가 아닌) 형식의 문자열을 의미하는 경우 다음과 같이 바이트로 변환 할 수 있습니다.
>>> bytes(int(x,0) for x in ['0xc5', '0x81']) b'\xc5\x81'
그런 다음 str 생성자를 사용하여 str (즉 : 유니 코드)로 변환 할 수 있습니다.
>>> str(b'\xc5\x81', 'utf-8') 'Ł'
... 또는 bytes 객체에서 .decode ( 'utf-8')을 호출하여 다음을 수행 할 수 있습니다.
>>> b'\xc5\x81'.decode('utf-8') 'Ł' >>> hex(ord('Ł')) '0x141'
3.x 이전에는 str 형식이 바이트 배열이고 유니 코드는 유니 코드 텍스트 용이었습니다.
다시 말하지만, "옥텟"으로 '0xc5'( '\ xc5'가 아닌) 형식의 문자열을 의미하는 경우 다음과 같이 변환 할 수 있습니다.
>>> ''.join(chr(int(x,0)) for x in ['0xc5', '0x81']) '\xc5\x81'
그런 다음 생성자를 사용하여 유니 코드로 변환 할 수 있습니다.
>>> unicode('\xc5\x81', 'utf-8') u'\u0141'
... 또는 str에서 .decode ( 'utf-8')를 호출하여 :
>>> '\xc5\x81'.decode('utf-8') u'\u0141'
-
==============================
2.lovely 3.x에서는 모든 strs가 유니 코드이고 바이트는 strs가 사용했던 것과 같습니다.
lovely 3.x에서는 모든 strs가 유니 코드이고 바이트는 strs가 사용했던 것과 같습니다.
>>> s = str(bytes([0xc5, 0x81]), 'utf-8') >>> s 'Ł' >>> ord(s) 321 >>> hex(ord(s)) '0x141'
당신이 요구 한 것은 무엇입니까.
-
==============================
3.
l = ['0xc5','0x81'] s = ''.join([chr(int(c, 16)) for c in l]).decode('utf8') s >>> u'\u0141'
-
==============================
4.
>>> "".join((chr(int(x,16)) for x in ['0xc5','0x81'])).decode("utf8") u'\u0141'
from https://stackoverflow.com/questions/1864701/convert-utf-8-octets-to-unicode-code-points by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬에서 XML을 CSV로 (0) | 2018.11.18 |
---|---|
[PYTHON] 어떻게 프록시를 통해 POP 또는 IMAP을 통해 이메일을 가져올 수 있습니까? (0) | 2018.11.18 |
[PYTHON] Python의 Spark DataFrame에서 labeledPoints 만들기 (0) | 2018.11.18 |
[PYTHON] 내부 클래스 : 생성시 외부 클래스 객체를 얻으려면 어떻게해야합니까? (0) | 2018.11.18 |
[PYTHON] pandas에 rolling_apply를 사용하는 Python 사용자 정의 함수 (0) | 2018.11.18 |