用 U+FFFD 替换给定字符集外的字符?
我需要接受用户输入的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)