用U + FFFD替换给定字符集之外的字符?

时间:2014-03-17 08:08:32

标签: python python-2.x python-unicode

我必须接受utf-8中的用户输入并将其提供给只接受ISO-8859-15的系统。 我想将用户提供的unicode字符串中的所有非ISO-8859-15字符转换为U + FFFD ,这样我就可以将有问题的字符呈现给用户。什么是最简单的方法来实现这个目标?

我正在使用Python 2.7。

*)使用“最简单”的任意定义:)

1 个答案:

答案 0 :(得分:1)

这个怎么样?

def is_latin_9(c):
    try:
        c.encode('iso-8859-15')
        return True
    except UnicodeEncodeError:
        return False

def replace_non_latin_9(s):
    return ''.join(c if is_latin_9(c) else u'\ufffd' for c in s)