首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用python / django从字符串中删除非ASCII字符

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

Stack Overflow用户
提问于 2010-04-30 15:56:36
回答 5查看 26.7K关注 0票数 16

我有一个存储在数据库中的HTML字符串。不幸的是,它包含诸如®之类的字符。我想将这些字符替换为它们的HTML等效项,要么在DB本身中,要么在我的Python / Django代码中使用Find replace。

对如何做到这一点有什么建议吗?

EN

回答 5

Stack Overflow用户

发布于 2010-04-30 16:16:57

您可以使用ASCII字符是前128个字符,因此使用ord获取每个字符的数量,如果超出范围,则对其进行剔除

代码语言:javascript
复制
# -*- 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)

结果

代码语言:javascript
复制
éáé123456tgreáé@€
123456tgre@

请注意,包含@是因为它毕竟是一个ASCII码字符。如果您想要剥离特定的子集(如数字和大小写字母),您可以限制查看ASCII table的范围

编辑:在再次阅读您的问题后,也许您需要转义您的HTML代码,以便所有这些字符在呈现后都正确显示。您可以在模板上使用escape筛选器。

票数 22
EN

Stack Overflow用户

发布于 2017-10-12 15:54:55

https://stackoverflow.com/a/18430817/5100481上有一个简单得多的答案

要从字符串s中删除非ASCII码字符,请使用:

s = s.encode('ascii',errors='ignore')

然后使用以下命令将其从字节转换回字符串:

s = s.decode()

所有这些都使用Python 3.6

票数 6
EN

Stack Overflow用户

发布于 2010-04-30 16:41:53

这是我不久前发现的,所以这不是我的作品。我找不到源代码,但这是我代码中的代码片段。

代码语言:javascript
复制
def unicode_escape(unistr):
    """
    Tidys up unicode entities into HTML friendly entities

    Takes a unicode string as an argument

    Returns a unicode string
    """
    import htmlentitydefs
    escaped = ""

    for char in unistr:
        if ord(char) in htmlentitydefs.codepoint2name:
            name = htmlentitydefs.codepoint2name.get(ord(char))
            entity = htmlentitydefs.name2codepoint.get(name)
            escaped +="&#" + str(entity)

        else:
            escaped += char

    return escaped

像这样使用它

代码语言:javascript
复制
>>> from zack.utilities import unicode_escape
>>> unicode_escape(u'such as ® I want')
u'such as &#174 I want'
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2743070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档