[PHP-users 24006] Re: 表\ の処理

Y.Sawa sawa @ keel-inc.co.jp
2004年 12月 28日 (火) 15:12:16 JST


Y.Sawaです。

> 「表」という漢字等が化ける・・・ということをMLで勉強したことがあり,
> htmlspecialchars等で対応しておりました.
> が,エスケープ文字も気になり,「\」(円記号)を使用して文字化けの
> テストをしていましたが,結果として,「表」を表示させようとすると
> 「\」がエラーになり,「\」を表示させようとすると「表」がエラーになり,
> どっちつかずの状態になってしまいます.
> 
> 現在,データベースのフィールドに「表\」とテストで入れている状態です.
> 以下のソースでテストすると,javascript の部分で「終了していない文字です」
> といったようなエラーになります.
> データが「表」だけの場合,
> $title = ereg_replace("\\\\","\\\\",$title);
> を外すことでうまくいき,
> データが「\」だけの場合,
> $title = htmlspecialchars($title,ENT_QUOTES);
> を外すことでうまくいきます.

わかったようなわからないような。
エラーがでるのはどこですか?JavaScript?PHP?

JavaScriptの場合、以下の構文はエラーになるでしょう
var hoge = "\";
もしくは
var hoge = "表\";

これはダブルクォーテーションがエスケープされてしまうから・・・ということ
はわかると思います。
なのでこれではいけませんよね?

それを前提として。
DBのデータがどのようなデータのときに、
HTML(JavaScript)に吐き出されるデータがどのようであってほしいのでしょうか?
一部でもそれの対応表とか作ってみたらどうでしょうか。

その上で、「このようなデータをこういう風に変換したい」という形で改めて質
問されることをお勧めします。



-- 
Yuta SAWA 
Email: sawa @ keel-inc.co.jp
Web Blog: http://d.hatena.ne.jp/succeed/




PHP-users メーリングリストの案内