GoogleAppEngineで Python 2.5からPython 2.7へ切り替えた時文字化けする場合(テンプレート使用時)。

GoogleAppEngineで Python 2.5からPython 2.7へ切り替えは簡単にできたけど、なぜかテンプレートを使っているサイトが文字化け(タグがタグとして働かずそのまま表示されたり)する。

from google.appengine.ext.webapp import template

このテンプレを使用していたサイトで文字がおかしくなった。この中にはDJANGOというテンプレートエンジンが入っているらしい。

いろいろ調べたら、テンプレートの中のDJANGOのバージョンが上がったのが原因だった。プログラム自体は何もイジる必要はなくて、テンプレファイル側を書き換えるだけで良かった。それまで自動エスケープされていなかったのが、バージョンアップ以降自動エスケープされているのでHTML関係の文字の扱いを気をつけないといけない。

Django テンプレート言語

テンプレートブロック単位の制御
テンプレートで自動エスケープを制御するには、テンプレート (または テンプレートの一部) を、以下のように autoescape タグで囲みます:

{% autoescape off %}
こんにちは {{ name }} さん
{% endautoescape %}

上記の通り対処法は簡単で、指定のタグでテンプレ内のエスペープ処理してほしくない部分を囲むだけ。以上で解決。


広告

コメントを残す