【Python】printで日本語を表示できない

  • 投稿 : 2020-03-06

参考

print("こんにちは、パイソン") ではまる - 40歳からのPython

上記を参考に、コードを追加したらうまく行きました。

・スターサーバー
・バリューサーバー

で確認しました。

動作確認コード

#!/usr/bin/python3.6
# -*- coding: utf-8 -*-

import io , sys ,locale
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

print("Content-Type: text/html;charset=utf-8\n\n")
print("<html>")
print("<head>")
print("<title>Hello world !</title>")
print("</head>")
print("<body>")
print("こんにちは世界 !<br>")
print("</body>")
print("</html>")

1行目は、レンタルサーバーによって違います。
スターサーバー

#!/usr/bin/python3.6

バリューサーバー

#!/usr/local/bin/python3

原因切り分け

・「こんにちは世界 !」を「Hello world !」に変更すると問題なく表示される
・プログラムソースは、UTF-8(BOMなし、改行LFコード)で保存している
・ファイルの属性は755などのように、実行権限をあたえてある
・拡張子は、cgi (pyで動作させたいときは、別途設定がいる)

簡単なプログラムで、まずが原因を切りわけて、明らかにprintで日本語表示してる時にエラーになるのを確認してくださいね。

スポンサーリンク