my_string = ('The Knights who say '
'\N{LEFT SINGLE QUOTATION MARK}'
'Ni!'
'\N{RIGHT SINGLE QUOTATION MARK}'
)
def print_repr_escaped(x):
print(repr(x.encode('unicode_escape').decode('ascii')))
print_repr_escaped(my_string)
# 'The Knights who say \\u2018Ni!\\u2019'
如果您使用本机文本编辑器打开文件,并且看起来很好,那么问题可能是您的其他程序没有正确地检测到编码并mojibaking。正如评论中提到的,几乎可以肯定的是一个看起来像
'
但不是的Unicode quote character如果无法控制其他程序的编码,则有两个选项:
删除所有Unicode字符like so:
尝试使用Unidecode之类的代码将Unicode字符转换为ASCII
如果您在Windows上,许多Windows应用程序都假定文件采用本机ANSI编码,除非文件开头有字节顺序标记(BOM)。对于UTF-8,BOM通常不需要,但在Windows上用作UTF-8文件的签名。您可以用
utf-8-sig
编解码器编写一个。以下内容适用于Python 2.x和3.x:相关问题 更多 >
编程相关推荐