レスポンスヘッダを書き換える

とても普通に考えて、Content-Type を書き換えてあげればよいはず。

    @expose(template="nkm.templates.entry")
    def entry(self):
        response.headers['Content-Type'] = "text/xml;charset=UTF-8"
        return dict(wdg=EntryFormDesc())

ところがこれではダメでして、テンプレートエンジンのKidが勝手に書き換えてしまうらしい(まあテンプレートに依存する部分があるので、仕方ない)。

でもいま作っているテンプレートはHTMLじゃなくて、HTMLの断片なのです。なので、でContentTypeを指定するわけにもいかない。

というわけで、グローバルな設定を変更しました。config/app.cfg に、

kid.encoding="UTF-8"

という行を追加(もともとコメントになっている)。

これで無事、IEでも処理できるようになりました。