문자열에 문자가 포함되어있는 경우 Python을 확인하는 방법은 특정 코드 페이지를 형성합니까?

StackOverflow https://stackoverflow.com/questions/20353716

  •  25-08-2022
  •  | 
  •  

문제

Python은 String 인코딩에 대해서만 UTF8 만 사용하지만 UTF8을 사용하지 않는 경우 UNICODE가 아닌 이전 애플리케이션으로 데이터를 보내야하며 Windows-1251 (Cyrylic) 등과 같은 Windows 코드 페이지에 포함 된 이러한 문자 만 지원합니다. . 따라서 UTF-8 문자열에 주어진 코드 페이지로 표현할 수없는 문자가 포함되어 있는지 감지하고 싶습니다.

도움이 되었습니까?

해결책

인코딩 탐지를위한 LIB가 있습니다. https://pypi.python.org/pypi/chardet (파이썬에서 자동 감지를 인코딩하는 문자. 브라우저만큼 똑똑합니다. 오픈 소스)

감지 ...

  • ASCII, UTF-8, UTF-16 (2 변형), UTF-32 (4 개의 변형)
  • Big5, GB2312, EUC-TW, HZ-GB-2312, ISO-2022-CN (전통 및 단순화 된 중국어)
  • EUC-JP, Shift_jis, ISO-2022-JP (일본어)
  • EUC-KR, ISO-2022-KR (한국)
  • KOI8-R, MACYRILLIC, IBM855, IBM866, ISO-8859-5, Windows-1251 (Cyrillic)
  • ISO-8859-2, Windows-1250 (헝가리어)
  • ISO-8859-5, Windows-1251 (불가리아어)
  • Windows-1252 (영어)
  • ISO-8859-7, Windows-1253 (그리스어)
  • ISO-8859-8, Windows-1255 (시각 및 논리 히브리어)
  • TIS-620 (태국)

문서의 예 :

>>> import urllib
>>> rawdata = urllib.urlopen('http://yahoo.co.jp/').read()
>>> import chardet
>>> chardet.detect(rawdata)
{'encoding': 'EUC-JP', 'confidence': 0.99}

다른 팁

어디에 blah 당신의 끈이고 ascii 인코딩입니다 :

blah = u'\uffff'
try:
    blah.encode('ascii')
except UnicodeEncodeError:
    # nope - can't do it...
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top