[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 メーリングリストの案内