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

1 投票
1 回答
665 浏览
提问于 2025-04-17 22:38

我需要接受用户输入的utf-8格式,然后把这些输入传给一个只接受ISO-8859-15格式的系统。我想把用户提供的unicode字符串中所有不属于ISO-8859-15的字符转换为U+FFFD,这样我就可以把这些有问题的字符展示给用户。有什么简单的方法可以做到这一点吗?

我正在使用Python 2.7。

*) 这里的“简单”是个随意的定义哦 :)

1 个回答

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)

撰写回答