[Seasar-user:17251] Re: teeda-extention環境 フォームへの入力文字列が文字実態参照に置き換わってしまう件について

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2009年 4月 13日 (月) 20:00:15 JST


小林 (koichik) です.

Date:    Mon, 13 Apr 2009 16:43:46 +0900
From:    <[E-MAIL ADDRESS DELETED]>
To:      <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:17249] teeda-extention環境 フォームへの入力文字列が文字実態参照に置き換わってしまう件について

> 只今teeda(teeda-extension)で開発されたアプリを扱っているのですが、
> 入力フィールドに入力した文字列が、サーバ側で受け取ったタイミングで
> 既に文字実態参照に置き換わってしまいます。
>  
> 置き換わる文字は、既に分かっており
> ページ(html)のcharset指定が、"Windows-31J"になっているため
> CP932に登録のない漢字、文字がコピペ等で入力されてしまった場合
> しれっと置き換わります(変な文字を入力 ⇒ &#40848;こんな感じ)
>  
> フィルタかどこかで変換をかけているのだと思うのですが
> どのように対処すれば良いのでしょうか?

これはフィルタではなく,ブラウザが置換しています.
以下の「3. Window Vistaで使用される文字コードについて」
等を参照してください.

http://www-06.ibm.com/jp/domino01/mkt/websphere.nsf/doc/00355FD5

> 目的としては、このように文字参照されてしまう文字が入力された場合
> フィルタで変換せずにそのまま受け取り、validatorによりはじきたいです。

正規表現 Validator を使って

@RegularExpression(pattern="([^&]*(&(?!#\\d+;))?)*")

みたいな感じではじけるのではないかと.
# 正規表現自体はもっと精査した方がいいかも.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



Seasar-user メーリングリストの案内