[mayaa-user:414] Re: Windows-31JのページをShift_JISと偽る?方法について
suga
ko.suga @ gmail.com
2007年 1月 15日 (月) 19:48:19 JST
suga です。
On 1/15/07, Jundo Ishikawa <jundo.ishikawa @ gmail.com> wrote:
> 現在、Windows-31Jで記述したHTMLがあるのですが、これを表示するときにヘッダの
> 部分だけをShift_JISに偽りたいと思うのですが、Mayaaの標準機能でそういったことは
> 可能でしょうか?
一応は可能です。
> 案2. metaタグを実行時に置き換える。
> metaタグにidを振って、テンプレートにはWindows-31Jを指定し、mayaaファイル側で
> Shift_JISのヘッダを書いておき実行時にmayaaに置き換えてもらう。
> →HTTPヘッダ=Windows-31J、metaタグ=Shift_JISとなるが、Windows-31Jを解釈で
> きずmetaタグに従って文字を判断してくれる。
微妙にビルドが遅くなりますが、xpath を使うと設定は楽です。
default.mayaa に下記の形で書けば全テンプレートが対象になります。
# テンプレートのタグの数が多い場合は遅くなりすぎるかもしれません
<m:echo m:xpath="//meta[@http-equiv='content-type']">
<m:attribute name="content" value="text/html; charset=Shift_JIS"/>
</m:echo>
レスポンスも Shift_JIS にするには、Mayaa ファイルで設定します。
<m:mayaa xmlns:m="http://mayaa.seasar.org"
m:contentType="text/html; charset=Shift_JIS">
これは個別の Mayaa ファイルに定義する必要があります。
テンプレートを読む文字コードの部分は NekoHTMLParser 内部ですので、
Neko をカスタマイズしない限りは置きかえられません。
# UTF-8 でも微妙な問題がありますし、文字コード関連のブラウザのバグや
# 制限は大変ですよねえ。
--
suga ( ko.suga @ gmail.com )
mayaa-user メーリングリストの案内