osx

时间:2015-05-04 15:19:03

标签: python python-2.7 python-webbrowser

我正在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

1 个答案:

答案 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éè")