CGIとして動作させた場合のUnicodeEncodeError
Webサーバーの、CGIで以下のコードを実行するとエンコーディングのエラーになります。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
html_body = """
<!DOCTYOE html>
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> Test CAM</title>
</head>
<body>
こんにちは<br>
<form>
<input type="button" value="Button" onclick="button_click()">
</form>
</body>
</html>
"""
print("Content-type: text/html\n")
print(html_body)
エラー内容は
UnicodeEncodeError: 'ascii' codec can't encode characters in position 153-157:
ただし、ファイルは
$ nkf -guess test.py
UTF-8
なので、utf-8のはずです
どうも、リダイレクトの折にエラーになるようで
import sys
sys.setdefaultencoding('utf-8')
を入れて見ましたが、今度は
AttributeError: module 'sys' has no attribute 'setdefaultencoding'
とのエラーになります。
Python3ではどのように対処すれば良いでしょうか?