このコードをコンソールで実行すると (ロシア語で) うまく動作しますが、Apache2 サーバーで cgi のように実行すると失敗します: <type 'exceptions.UnicodeEncodeError'>: 'ascii' codec can't encode characters in position 8-9: ordinal not in range(128)
. コードは次のとおりです。
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import cgitb
cgitb.enable()
print "Content-Type: text/html;charset=utf-8"
print
s=u'Nikolja \u043d\u0435 \u0421\u0430\u0440\u043a\u043e\u0437\u0438!'
print s#.encode('utf-8')
はい、解決策はコメントを外すこと.encode('utf-8')
ですが、理由を理解するのに時間がかかり、答えがわかりません。