簡體   English   中英

如果字符串包含只包含特定代碼頁的字符,如何檢查python?

[英]how to check in python if a string contains characters only form specific code page?

我知道python只使用utf8進行字符串編碼,但是如果我需要將數據發送到非unicode的舊應用程序並且僅支持windows代碼頁中包含的這些字符,如windows-1251(cyrylic)等。所以這里我想檢測utf-8字符串是否包含任何不能由給定代碼頁表示的字符。

blah是你的字符串, ascii是你的編碼:

blah = u'\uffff'
try:
    blah.encode('ascii')
except UnicodeEncodeError:
    # nope - can't do it...

有用於編碼檢測的lib: https//pypi.python.org/pypi/chardetPython中的字符編碼自動檢測。與瀏覽器一樣智能。開源

檢測...

  • 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,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(泰國語)

來自docs的示例:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM