删除序数超出范围的字符串中的所有字符
问题内容:
ordinal(128)
从python中的字符串中删除所有超出范围的字符的好方法是什么?
我在python 2.7中使用hashlib.sha256。我得到了例外:
UnicodeEncodeError:’ascii’编解码器无法在位置13编码字符u’\ u200e’:序数不在范围内(128)
我认为这意味着某些时髦的字符进入了我要哈希的字符串中。
谢谢!
问题答案:
new_safe_str = some_string.encode('ascii','ignore')
我认为会工作
或者您可以进行列表理解
"".join([ch for ch in orig_string if ord(ch)<= 128])
[edit]但是正如其他人所说的,通常最好弄清楚如何处理unicode …除非出于某些原因您真的需要将其编码为ascii