2019年9月10日火曜日

ラズパイ(Webサーバー・10)

前回は、パスワード設定を変更できるように調整しました。
今回は、ページの日本語化対応についてです。
Webページとして表示したい部分をPythonのファイルだけ利用して
作成する場合ですと、短いページなら問題ないのですが、
ページ切り替えや、多くの外部ファイルと連携しないと
いけない場合など、ソースのコードが増えて
管理が大変になってしまいます。
そこで、表示するHTML部分を別のファイルとして作成して
読み込むようにします。
cur_dir = os.getcwd() # カレントフォルダ取得
tar_file = cur_dir + self.path
if (os.path.isfile(tar_file)):
    f = open(tar_file)
    txt = f.read()
    f.close()
    self.send_response(200)
    self.send_header("Content-type", mimetype)
    self.end_headers()
    self.wfile.write(txt.encode("utf-8"))

通常は、これでOKなのですが、
日本語の文字列が混ざるとエラーが出て表示されなくなってしまう
場合があります。

そこで、読み込む際のファイルのエンコードを以下のように
調整することで、エラーが出なくなります。

    f = open(tar_file, encoding='utf-8')

エンコードを追加しないとエラーがでるという
Webページを配信時のファイル読み込みに
見落としがちな文字コードについてでした。

https://www.filetalk.info/index.html


0 件のコメント:

コメントを投稿