2

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は重複していません

4

1 に答える 1

4

手動で utf-8 にエンコードしてみてください:

webbrowser.open(u"http://www.google.fr?q=testéè".encode('utf-8'))

ファイルエンコーディングを提供する場合は、ユニコードを使用しないでください。

#!/usr/bin/python
# -*- coding: utf-8 -*-
...
webbrowser.open("http://www.google.fr?q=testéè")
于 2015-05-04T15:33:47.183 に答える