删除序数超出范围的字符串中的所有字符


问题内容

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