'euc-kr'로 인코딩 된 한국어 텍스트 파일을 파이썬에서 읽으려고했으나 오류가 발생했습니다. encodings
모듈을 잠시 살펴본 후이 모듈이 한국어 문자를 매우 이상하게 인코딩한다는 것을 알게되었습니다. 나를Python은 euc-kr 인코딩 (코덱, 인코딩 모듈)을 사용하여 예상치 못한 방식으로 (한국어) 문자를 인코딩합니다.
탇이 (AN 거의 사용되지 않는 문자입니다,하지만 난 발음 사전이 필요하는) EUC-KR 사양에 따라 B5 (e)로 인코딩하도록되어 한국어 문자가 (내가 언급 한 예를 보자 this site). 그러나 encodings 모듈은 나에게 다소 다른 결과를 준다. 당신이 볼 수 있듯이 나는 B5 (e) 및 euc_kr.codec.encode
나에게 내가 기대했던 것보다 더 바이트를 제공 디코딩 할 때
# python3
>> from encodings import euc_kr
>> euc_kr.codec.decode(b'\xB5\x6E')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'euc_kr' codec cant decode byte 0xb5 in position 0: illegal multibyte sequence
>> euc_kr.codec.encode('탙')
(b'\xa4\xd4\xa4\xbc\xa4\xbf\xa4\xbc', 1)
, 나는 오류가 발생합니다. 나는 거기에 무슨 일이 일어나는지 전혀 모른다. B5 6E (및 다른 많은 한국어 문자)을 디코딩 할 때 오류를 발생시키지 않으려면 어떻게해야합니까? EUC-KR 사양에 대한 또 다른 문서가 있습니까? EUC-KR의 Python 구현이 어떻게 작동하는지 이해하기 위해 읽을 수 있습니까?
예, 이상합니다. 나는 euc 인코딩에 익숙하지 않지만 euc_kr이 1 또는 2 바이트로 각 코드 포인트를 인코딩해야 할 때 euc_kr.codec.encode ('탙')'이 많은 바이트를 생성하는 이유를 모르겠습니다. BTW, 당신은'euc_kr.codec.encode (s)'을 사용할 필요가 없다. 단지's.encode ('euc_kr')'만 할 수있다. –