Detecting non-ascii characters in unicode string
本问题已经有最佳答案,请猛点这里访问。
对于文本文件(或Unicode字符串),什么是检测不属于ASCII编码的字符的好方法?我可以很容易地迭代将每个字符传递给
这里的最终目标是编译数据中不能编码为ASCII的字符列表。
如果重要的话,我的语料库的大小大约是500MB/1200个文本文件。在Win7(64位)上运行(预编译的香草)python 3.3.1。
The ultimate goal here is to compile a list of characters in the data
that cannot encode to ascii.
我能想到的最有效的方法是使用
这只会去掉可打印字符…
1 2 3 | >>> import re >>> print re.sub('[ -~]', '', u'£100 is worth more than €100') £€ |
…或者如果要包括不可打印的字符,请使用此…
1 2 | >>> print re.sub('[\x00-\x7f]', '', u'£100 is worth more than €100') £€ |
为了消除重复,只需创建返回字符串的
1 2 | >>> print set(re.sub('[\x00-\x7f]', '', u'£€£€')) set([u'\xa3', u'\u20ac']) |