我正在Windows 7,Python 2.7计算机上开发跨平台脚本。该脚本也将在安装了Python 2.7的MacOSX计算机上使用。
以下脚本在我的Windows计算机上运行正常,但是当我在Mac上运行它时,我收到了unicode错误。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import webbrowser
webbrowser.open(u"http://www.google.fr?q=testéè")
这是错误:
Mac-mini-de-paul:paul paul$ python testUnicode.py
Traceback (most recent call last):
File "testUnicode.py", line 6, in <module>
webbrowser.open(u"http://www.google.fr?q=testéè")
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/webbrowser.py", line 62, in open
if browser.open(url, new, autoraise):
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/webbrowser.py", line 637, in open
osapipe.write(script)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 42-43: ordinal not in range(128)
我真的不明白这里的问题是什么,Python的基本函数应该正确处理unicode文件名,不是吗?
注意: 我看到了这个问题,但它没有帮助我,OP没有任何错误:IMO not a duplicate
答案 0 :(得分:4)
尝试手动编码为utf-8:
webbrowser.open(u"http://www.google.fr?q=testéè".encode('utf-8'))
或者如果您提供文件编码,请不要使用unicode:
#!/usr/bin/python
# -*- coding: utf-8 -*-
...
webbrowser.open("http://www.google.fr?q=testéè")