(日)このブログの2月16日記事TurboGearsバージョンアップしたら動かないと、2月22日の記事TurboGearsバージョンアップしたら動かない-2で書いたとおり、TurboGearsを1.0.8にバージョンアップした際に様々な問題が発生した。したWEBアプリをTurboGearsで作ることにした。違うことをしたくなり、ビューテンプレートをCheetahにしてみた。標準のテンプレートはKidだが柔軟性に欠けるのと重いことがマイナス要因となり、速いと評判のCheetahにした。TurboGearsは少し前のバージョンからCheetahも使えるようになっている。次期バージョンではGenshiがデフォルトとなりCheetahはサポートされないようだが、Genshiは少々難しそうなのでとりあえずは使ったことの無いCheetahにした。考え方の若干の違いはあるが様々なテンプレートエンジンを使用したことのある私にはそれほど大きな問題ではなく、とりあえずのテスト表示は上手く行った。ところが、プログラム中から与えた日本語文字が表示できない。表示できないのではなく、実行時エラーで止まってしまうのだ。次のようなメッセージが表示される。range(128)良くある日本語文字コードの問題だ。そこで思い当たる箇所をチェックしてみたが問題はない。私のプログラムは文字列は原則としてUNICODEベースでプログラミングしている。問題の文字列をUTF-8文字列にしたところ、上手く行った。ビューはUTF-8なので与える文字列は同じUTF-8にしなければならない、ということか。いままでKidではUNICODE文字列を直接与えても問題なく表示できていた。テンプレートをCheetahに変えるとプログラミングを変更しなければならないのでは話にならない。ちなみにTurboGearsの設計では本体のプログラムミング変更無しでテンプレートだけ変えれば良いはずなのだ。いう箇所でエラーが発生している。”DummyTransaction”とは、なにやら本質的ではない処理のようだ。その本質的でない箇所のエラーでCheetahが使えないのでは癪に障るので、DummyTransaction.pyの問題の箇所を修正した。strJoinこれで問題なく動くようになった。(日)このブログの2月16日記事TurboGearsバージョンアップしたら動かないで、TurboGearsを最新バージョン1.0.8にバージョンアップしたときの問題点について書いた。tg-aminを使う必要がある。