2006年02月22日

特殊文字の二重エスケープ問題

FX.php は特に指定しない限り、 FMS7A/8A との間でUTF-8でデータをやり取りします。

FX.php は FMS7A/8A から取得したデータに含まれる非ASCIIキャラクタを FX.php 内部でキャラクタ・エンティティに置き換えます。たとえばFileMakerデータベースのテキストフィールドに含まれる"●" (bullet: UTF8 C2B7) は "•" になります。

※私のケースでは日本語は使わないので、日本語の場合はどういう影響があるかわかりません。

データベースから引っ張ってきたデータを web に表示するためには、セキュリティ上、"&", "<", ">" などのキャラクタをエスケープしなければなりません。

しかし、上記のように既にエスケープされたものは、表示段階で二重にエスケープされてしまうことになり、正しく表示されません。

FX.php メーリングリストでも同じ問題を抱える人がいて、その方がワークアラウンドを提案されています。
http://www.iviking.org/pipermail/fx.php_list/2005-June/000603.html

すなわち、FX.php 内部でのエスケープをしないようにオーバーライドします。とりあえずは上手く行っているようですので、しばらくテストしてみたいと思います。


posted by Kojima at 06:19| Comment(0) | TrackBack(0) | FX.php | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。