- 締切済み
vista追加文字(jis2004文字)の登録
vistaで変更になったjis2004の文字をperlで作成したWEBページから入力すると、以下の現象が発生します。 1、WEBページからvista(jis2004)で変更になった「葛」(ここでは表示できないが"ヒ"部分が"メ")、「鴎」(ここでは表示できないがメの部分が口3つ)、「高」(はしご高)、「七が三つの文字」を入力しデータ登録する(postgres)。 2、データベースを参照すると、それぞれ以下のように登録されています 「葛」 → 「葛」 「鴎」 → 「鷗」 「高」 → 「・」 「七が三つの文字」→ 「㐂」 3、このDBの内容をWEBで表示すると以下のようなに表示されます。 「葛」 → 「葛」 「鴎」 → 「鴎」 「高」 → 「高」 「七が三つの文字」→ XPでは「・」、vistaでは「七が三つの文字」 4.クロスサイトスクリプティング対応したモジュールで3と同様の内容を表示すると以下のようになります(&を&に置換)。 「葛」 → 「葛」 「鴎」 → 「鷗」 「高」 → 「高」 「七が三つの文字」→ 「㐂」 ここで質問ですが、 (1)DBに「鴎」などのShift_JISの文字コードで登録されるのはなぜでしょうか?(サーバはLINUXで文字コードはEUCです。) (2)クロスサイト対応をしたページでは、上記文字がShift_JISコードで表示されてしまいますが、この対応策は何かないでしょうか? ちなみに「鴎外」の新文字をこのサイトで入力すると「鷗外」となります。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- thatsthat
- ベストアンサー率55% (15/27)
補足
なるほど、unicode固有文字は、DBにそのまま登録されるのですね~。DBに複数文字コードが登録されると気持ち悪い気はしますが・・・そういうものなんですね。。 対応策は難しいですね。 >・unicode固有文字を絶対使わない > IMEの設定で制限できるような事がどこかに書かれていました。 この対応は、今回不特定多数のWEBを対象としているため不可能です。 >・全員vista、またはjis2004対応フォントをインストールしたPCを使>い、3の形で妥協する これも不可能ですね~。jis2004の対応のためにXSS対応を外すのはリスクが大きすぎますね。 >・他の、似た文字(unicode固有でない物)に置き換える > &#40407→「鴎」のように。 これは可能ですが、WEBページすべての処理にこの変換を入れるのは骨が折れますね~(><)しかも、追加文字もかなり多いようですし・・・