2017-07-21 3 views
2

いくつかのUnicode文字列を持つPython CGIスクリプトを実行しようとしています。これは、コンソールで正常に動作しますが、私は、ブラウザでそれを実行すると、それは私がこれら二つ試してみましたエラー -Python 3 CGIでUnicode文字を印刷するにはどうすればよいですか?

UnicodeEncodeError: 'ascii' codec can't encode character '\u2026' in position 198: ordinal not in range(128)

次与えます -
encode('ascii','ignore') unicodedata.normalize('NFKD',var).encode('ascii', 'ignore').strip()
varがunicode文字列を保持する変数です。

ここで、ブラウザでUnicodeまたはASCIIをエラーなしで印刷するにはどうすればよいですか?

答えて

1

PythonがコンソールにUnicode文字列を出力すると、通常、コンソールエンコーディングが検出され、そのエンコーディングを使用してUnicode文字列が自動的にエンコードされます。 CGIの場合は端末がないので、デフォルトはasciiです。

import codecs 
sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer) 

をあなたにもstderrのためのような行を使用することができます:あなたが使用して別のエンコーディングにstdoutを変更することができます。

関連する問題