Python中的重音符号

Python中的重音符号,python,unicode,utf-8,Python,Unicode,Utf 8,我知道这个问题并不新鲜,但我不知道如何解决它。我需要将.opl文件(vim大纲格式)转换为.mm(free mind)。关键是原始文件是用意大利语编写的,所以充满了重音,在使用python脚本()进行转换的过程中,我遇到了一个unicode错误。这就是细节 python outline\u freemind.py test.otl>test.mm 文件“outline\u freemind.py”,第114行,在 write(sys.stdout,'utf-8') 写入文件“/Library/

我知道这个问题并不新鲜,但我不知道如何解决它。我需要将.opl文件(vim大纲格式)转换为.mm(free mind)。关键是原始文件是用意大利语编写的,所以充满了重音,在使用python脚本()进行转换的过程中,我遇到了一个unicode错误。这就是细节

python outline\u freemind.py test.otl>test.mm
文件“outline\u freemind.py”,第114行,在
write(sys.stdout,'utf-8')
写入文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py”,第815行
序列化(写入、自根、编码、qnames、命名空间)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py”,第934行,在xml中序列化
_序列化xml(写入、e、编码、qnames、无)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py”,第934行,在xml中序列化
_序列化xml(写入、e、编码、qnames、无)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py”,第934行,在xml中序列化
_序列化xml(写入、e、编码、qnames、无)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py”,第927行,在xml中序列化
v=_escape_attrib(v,编码)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py”,第1085行,在
返回text.encode(编码,“xmlcharrefreplace”)
UnicodeDecodeError:“ascii”编解码器无法解码第9位的字节0xc3:序号不在范围内(128)
我试图在脚本的开头插入

# -*- coding:utf-8-*-

没有成功。

插件的声明编码与您遇到的问题无关:声明的唯一目的是告诉Python解释器程序本身的编码,并且您的程序不包含ASCII范围以外的字符,因此不可能误解

如果问题与程序编码有关,则会出现如下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "outline_freemind.py", line 115
SyntaxError: Non-ASCII character '\xc3' in file outline_freemind.py on line 115, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“outline_freemind.py”,第115行
语法错误:第115行的outline_freemind.py文件中的非ASCII字符“\xc3”,但未声明编码;看见http://www.python.org/peps/pep-0263.html 详情

。。。但由于您实际上得到了一个
UnicodeDecodeError
,这意味着您的插件在处理非ASCII输入时出现了错误。。。因此,您可能应该向插件的作者报告这一点。

它不是
编码
,而是
编码
#-*-编码:utf-8-*-
@Chnossos。。。尽管OP的错误看起来与脚本声明的编码无关,但根据手册()的规定,语法是:#/usr/bin/env python#——编码:拉丁语-1——请检查类似的答案,并告诉我们它是否有效;它也许更适合作为一个评论。@triplee的评论有点长,你不觉得吗?我同意答案不能解决OP的问题,但只有调试第三方的生产代码才能做到这一点,这超出了SO的范围(因此我建议联系代码作者)。关于这个问题的其他评论有可能导致OP走上错误的道路;这个答案希望能帮助他们避免在这方面走得太远。