Python osx 上的网络浏览器平台特定 unicode 错误

Python webbrowser platform specific unicode error on osx

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

尝试手动编码为 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éè")