Web ページを取得して HTML ファイルを Web ブラウザに表示する (プロキシのように動作する) 簡単な Python CGI スクリプトを作成しています。スクリプトは次のとおりです。
#!/usr/bin/env python3.0
import urllib.request
site = "http://reddit.com/"
site = urllib.request.urlopen(site)
site = site.read()
site = site.decode('utf8')
print("Content-type: text/html\n\n")
print(site)
このスクリプトは、コマンド ラインから実行すると問題なく動作しますが、Web ブラウザーで表示すると、空白のページが表示されます。Apache の error_log に表示されるエラーは次のとおりです。
Traceback (most recent call last):
File "/home/public/projects/proxy/script.cgi", line 11, in <module>
print(site)
File "/usr/local/lib/python3.0/io.py", line 1491, in write
b = encoder.encode(s)
File "/usr/local/lib/python3.0/encodings/ascii.py", line 22, in encode
return codecs.ascii_encode(input, self.errors)[0]
UnicodeEncodeError: 'ascii' codec can't encode character '\u2019' in position 33777: ordinal not in range(128)