관리 메뉴

솜씨좋은장씨

[Python] 문자열의 인코딩을 확인하는 방법 본문

Programming/Python

[Python] 문자열의 인코딩을 확인하는 방법

솜씨좋은장씨 2020. 9. 21. 21:10
728x90
반응형

Python에서 문자열을 다루다보면

특히 한글이 포함된 문자열을 다루게 되면

종종 아래와 같은 에러코드를 만나며 인코딩 문제로 애를 먹는 경우가 많이 있습니다.

UnicodeEncodeError: 'cp949' codec can't encode character '\xa0' 
in position 17678: illegal multibyte sequence

위와 같은 문제를 만났을 때

내가 지금 다루고 있는 문자열 또는 파일속의 데이터가 어떤 인코딩을 사용하는지 확인하고 싶을 경우

방법은 다음과 같습니다.

 

필요 라이브러리 설치

먼저 인코딩을 확인하기 위해 필요한 chardet 라이브러리를 설치합니다.

 $ pip install chardet 

 

사용 방법

문자열의 경우

import chardet

string = "솜씨좋은장씨"

print(chardet.detect(string.encode()))
{'encoding': 'utf-8', 'confidence': 0.99, 'language': ''}

파일의 경우

import chardet

with open("file.txt", "r") as f:
    file_data = f.readline()

print(chardet.detect(file_data.encode()))
{'encoding': 'utf-8', 'confidence': 0.99, 'language': ''}

 

위와 같이 사용하여 해당 문자열 또는 파일 데이터의 인코딩을 확인하면 됩니다.

 

지원하는 인코딩 종류

ASCII, UTF-8, UTF-16 (2 변형), UTF-32 (4 변형)
Big5, GB2312, EUC-TW, HZ-GB-2312, ISO-2022-CN (중국어 번체 및 간체)
EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP (일본어)
EUC-KR, ISO-2022-KR (한국어)
KOI8-R, MacCyrillic, IBM855, IBM866, ISO-8859-5, windows-1251 (키릴 문자)
ISO-8859-2, windows-1250 (헝가리어)
ISO-8859-5, windows-1251 (불가리아어)
windows-1252 (영어)
ISO-8859-7, windows-1253 (그리스어)
ISO-8859-8, windows-1255 (시각적 및 논리적 히브리어)
TIS-620 (태국)

읽어주셔서 감사합니다.

Comments