このページをご覧の皆さんのほとんどは日本語でWebサービスやアプリを公開することを考えているのではないかと思いますが、Djangoを使用しているとたまに「HTMLファイルに日本語を入力した途端にエラー」になる場合があります。今回はこのようなケースの中でも、ファイルの文字コードが原因の場合の解決方法をご紹介します。
1. エラーの種類の確認
まずは、エラーの種類を確認しましょう。デバッグモードでアプリを実行して、エラーが出るページに行きましょう。そこで表示される黄色いエラー画面のタイトルが「UnicodeDecodeError」になっているのであれば、このページで紹介する方法で解決できる可能性が高いです。下記がサンプルのエラー画面です。
2. ファイルの文字コードを変更する
先のような画面が出ていた場合、日本語を使用したHTMLファイルの文字コードがUTF-8でないためエラーが生じています。これをUTF-8で保存しなおします。問題となっているファイルをメモ帳で開いてみましょう。開いただけでは何もわかりませんが、上側メニューのファイルから「名前を付けて保存」をします。
保存画面の下側に文字コードと書かれたところがあると思います。たいていの場合ここが「ANSI」になっています。これを「UTF-8」に変更して保存しなおしましょう。これで文字コードが「UTF-8」になりました。この状態で再度アプリを実行すればエラーが出ないはずです。
もちろんですが、日本語を使用しているすべてのHTMLファイルの文字コードが「UTF-8」でなければならないので、複数のページで使用している場合はすべての文字コードを変更して再保存してください。