MeCab のユーザー辞書を作成するため、macOS (OS X) にデフォルトでインストールされている Python 2.7 のスクリプトを実行すると、次のエラーが表示されてしまいました。
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position *: ordinal not in range(128)
このエラーは、Python のデフォルトの文字エンコーディングが ASCII なのに、スクリプト内で使用している正規表現の文字エンコーディングが UTF-8 になっているためでした。
そこで、Python デフォルトの文字エンコーディングを UTF-8 になるように設定します。
sitecustomize.py
Python の設定を変更するには、site-packages ディレクトリーにある sitecustomize.py に次の行を追加します。sitecustomize.py がないときはファイルを作成します。
import sys
sys.setdefaultencoding("utf-8")
site-packages ディレクトリーは、/Library/Python/2.7 にあります。MAMP の Python を利用しているときは、/Applications/MAMP/Library/lib/Python2.7 にあります。
文字エンコーディングの確認
Python で次のスクリプトを実行して、デフォルトのエンコーディングが UTF-8 になっていることを確認します。
$ python
>>> import sys
>>> sys.getdefaultencoding()
'utf-8'