2017-04-05 4 views
0

JIS X 208 코드에서 16 진수로 표현 된 한자 "아"가 있다고 가정 해 봅시다 : 0x3021. 나는 그 문자열 (URL 인코딩)을 통과 할 수 있도록 내 파이썬 프로그램은 내가 파이썬 2.7.12을 사용하고이JIS X 208 코드를 파이썬에서 UTF-8로 변환

http://jisho.org/api/v1/search/words?keyword=%E4%BA%9C

처럼 내 URL로는 UTF-8 형태 E4BA9C에 그 코드를 변환 할 하지만 파이썬 3 솔루션에 대해서도 개방적입니다.

답변

1

이들은 ISO 2022 코덱에서 액세스됩니다.

>>> '亜'.encode('iso2022_jp') 
b'\x1b$B0!\x1b(B' 

내가 이스케이프 시퀀스에 둘러싸인되지 않은 바이트를 봤다면, 내가 JIS X 0208의 버전이 사용되는 알고 있어야하지만, 어쨌든이 시점에서 위키 백과에 일치 전체 패턴입니다.

>>> b = b'\033$B' + bytes.fromhex('3021') 
>>> c = b.decode('iso2022_jp') 
>>> c 
'亜' 
>>> urllib.parse.quote(c) 
'%E4%BA%9C' 

솔루션에 대한

+0

감사합니다 (이것은 파이썬 3입니다). 파이썬 2 솔루션을 제공 할 수 있는지 궁금합니다. – tlaminator

+0

또한'b '\ 033 $ B' 시퀀스를 어떻게 얻었는지 잘 모르겠습니다. 이 시퀀스는이 예제와 관련이 있습니까? 아니면 다른 JIS X 208 코드에도 일반적으로이 코드를 사용할 수 있습니까? – tlaminator

+0

파이썬이 iso2022_jp에서 인코딩하도록 요청했을 때 파이썬이 제공 한 것입니다. https://en.wikipedia.org/wiki/ISO/IEC_2022#ISO.2FIEC_2022_character_sets에서 자세한 내용을 볼 수 있습니다. –