ここで、長い間私を困惑させてきた質問があります。bbedit を使用して Python コードを編集します。私が理解しているように、エディター内からコードを実行すると、独自の python プロセスが生成され、コードが実行され、出力がログ ファイルに書き込まれます。そのため、bbedit は環境変数などについて知りません。ターミナルのコマンドラインでこれを試すと:
>>> s = 'háček'
>>> print s
háček
見つけて良い。しかし、bbedit に次のファイルがあるとします。
#!/opt/local/bin/python
# -*- coding: utf-8 -*- #
s = u'háček'
print s
そして、私が得たエディター内から実行してみてください:
UnicodeEncodeError: 'ascii' コーデックは位置 1-2 の文字をエンコードできません: 序数が範囲外です (128)
だから私はこれをしなければなりません:
print s.encode('utf-8')
bbedit に精通している人は、ここで何が起こっているのかを教えてくれますか? ユニコード文字が存在する場合の振る舞いをエディターに伝える方法はありますか?
ありがとう、ジョン