使用python / django从字符串中删除非ASCII字符

我有一个存储在数据库中的HTML字符串。不幸的是,它包含诸如®的字符,我想在数据库本身中或在我的Python / Django代码中使用“查找替换”将它们替换为HTML等效字符。

关于如何执行此操作的任何建议?

回答:

你可以使用ASCII字符为前128个字符,因此获取每个字符的编号,ord如果超出范围则将其删除

# -*- coding: utf-8 -*-

def strip_non_ascii(string):

''' Returns the string without non ASCII characters'''

stripped = (c for c in string if 0 < ord(c) < 127)

return ''.join(stripped)

test = u'éáé123456tgreáé@€'

print test

print strip_non_ascii(test)

结果

éáé123456tgreáé@€

123456tgre@

请注意,@其中包括了它,因为毕竟它是一个ASCII字符。如果要剥离特定的子集(如数字,大小写字母),则可以限制范围以查看ASCII表

编辑:再次阅读问题后,也许你需要转义HTML代码,因此一旦渲染,所有这些字符都会正确显示。你可以escape在模板上使用过滤器。

以上是 使用python / django从字符串中删除非ASCII字符 的全部内容, 来源链接: utcz.com/qa/417219.html

回到顶部