我知道python只使用utf8进行字符串编码,但是如果我需要将数据发送到非unicode的旧应用程序并且仅支持windows代码页中包含的这些字符,如windows-1251(cyrylic)等...所以在这里我想检测utf-8字符串是否包含任何无法通过给定代码页表示的字符。
答案 0 :(得分:2)
blah
是您的字符串,ascii
是您的编码:
blah = u'\uffff'
try:
blah.encode('ascii')
except UnicodeEncodeError:
# nope - can't do it...
答案 1 :(得分:2)
有用于编码检测的lib:https://pypi.python.org/pypi/chardet( Python中的字符编码自动检测。与浏览器一样智能。开源)
...检测
来自docs的例子:
>>> import urllib
>>> rawdata = urllib.urlopen('http://yahoo.co.jp/').read()
>>> import chardet
>>> chardet.detect(rawdata)
{'encoding': 'EUC-JP', 'confidence': 0.99}