• 締切済み

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コードで表示されてしまいますが、この対応策は何かないでしょうか? ちなみに「鴎外」の新文字をこのサイトで入力すると「鷗外」となります。

  • Perl
  • 回答数1
  • ありがとう数0

みんなの回答

  • thatsthat
  • ベストアンサー率55% (15/27)
回答No.1

vistaは使っていないので理屈っぽい事だけ・・・。 鷗と㐂がunicode固有文字だからでしょう。 他のコードに変換できませんので、unicodeのままDB(EUCの世界?)に入ってしまっているようです。 Shift_JISになっているわけではなさそうです。 葛と高は、字体がかわっただけで、文字コードは変わっていないので、問題ないです。 3では、単純にフォントが有るのでなんとか表示できてます。 (&#40407の方はwin2000でもXPでもフォントは入っているようです &#13314の方は、vista新規のようですね) 4は、unicode文字がXSS対応で 特殊文字に対する処理を受けた結果ですね。 対処として思いつくのは・・・ ・unicode固有文字を絶対使わない   IMEの設定で制限できるような事がどこかに書かれていました。 ・他の、似た文字(unicode固有でない物)に置き換える   &#40407→「鴎」のように。 ・全員vista、またはjis2004対応フォントをインストールしたPCを使い、  3の形で妥協する。  この時、XSS対応の処理を変更して、&#40407と&#13314を  (他に同じような文字があればそれらも)  そのままHTML出力するように変更する必要があります。 といった所でしょうか。

参考URL:
http://www.microsoft.com/japan/windowsvista/jp_font/default.mspx#EQ
hahihuke
質問者

補足

なるほど、unicode固有文字は、DBにそのまま登録されるのですね~。DBに複数文字コードが登録されると気持ち悪い気はしますが・・・そういうものなんですね。。 対応策は難しいですね。 >・unicode固有文字を絶対使わない >  IMEの設定で制限できるような事がどこかに書かれていました。 この対応は、今回不特定多数のWEBを対象としているため不可能です。 >・全員vista、またはjis2004対応フォントをインストールしたPCを使>い、3の形で妥協する これも不可能ですね~。jis2004の対応のためにXSS対応を外すのはリスクが大きすぎますね。 >・他の、似た文字(unicode固有でない物)に置き換える >  &#40407→「鴎」のように。 これは可能ですが、WEBページすべての処理にこの変換を入れるのは骨が折れますね~(><)しかも、追加文字もかなり多いようですし・・・

関連するQ&A

  • vistaのjis2004の文字化け

    windows vistaでは、jis2004が採用になり、大きく以下の3つの変更があったと思います。  (1)字形変更  (2)文字追加  (3)4バイトコードの追加 (1)字形変更では、フォントの変更だけなので影響がないと認識していましたが、send mail(linux)を使用し(1)字形変更の文字(例えば鴎外)等を入力し、vistaから、メールを送ると文字化けが発生し、「鷗外」と表示されます。 メーラから見ると「偀翌」などとまったく違う文字が表示されます。 こういった文字化けは、なぜ発生するのでしょうか?また、解決策等がありましたら教えて下さい。 (vistaのメーラからXPのメーラに送信した場合は、上記文字化けは発生しません。)

  • vistaで導入されたJIS2004の文字のチェックを考えています。

    あるシステムの開発において、windows vista用の対応として件名の事を考えています。 vistaで入力された文字がXP端末で表示できないのでは困るので、JIS2004で新たに加わった文字が入力された場合は、エラー扱いとし再度入力を促すように考えています。 正規表現等を用いて、文字列のチェックのコードを考えております。どなたか方法などお解かりになるかたご教授願えますでしょうか。 環境PHP5.2での動作を考えています。 その他のチェック方法、サロゲートペアの情報などありましたら教えてください。

    • 締切済み
    • PHP
  • htaccessでの文字コード設定について

    現在[PHP4 + MySql4.0.17]を利用したWebシステムを構築しています。 携帯での閲覧にも対応するため、携帯ページの文字コードをShift_JISにしたいと思っているのですが、MySqlのデータ文字コードはEUC-JPのため、ページ表示の際に文字化けしてしまいます。 現在、携帯用ページのトップディレクトリのhtaccessにて以下の設定を記述していますが、表示される文字コードはEUC-JPのままです。 ------------------------------------------------ AddDefaultCharset SHIFT_JIS php_value mbstring.http_input "auto" php_value mbstring.http_output "SHIFT_JIS" php_value mbstring.internal_encoding "SHIFT_JIS" ------------------------------------------------- もし上記の設定に間違いなどがあれば、ご指摘いただけないでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 文字コードがUTF-8のサイトにshift_jisの入力フォームを組み込んだのですが、、

    教えて下さい。 同じような質問があったのですが、解決しなかったのでお聞きしたいのですが、現在、文字コードがUTF-8のサイトに、配布されていたcgiを使い、入力フォームを作っているのですが、こちらは文字コードが shift_jisになっています。なので、そのページだけshift_jisでもいいかなと思い、本体に使っているcssをそのまま使おうとしたところ、CSSの文字コードがUTF-8になっており、多少フォントの指定が入っていまして、これを読み込むとIEでおかしなことになってしまいました。こういった場合やはりフォントの指定をはずした方がよいのでしょうか? 後、CSSでUTF-8でフォントファミリーの指定をしていた場合、HTMLファイルの方がshift_jisになっているとやはりフォントはでないのでしょうか? 分かりずらいですが、宜しくお願いします。

  • UTF-8→shift-jisに変換できるサイトは

    はじめまして。 インターネット上に存在する、UTF-8の文字コードで作られたHTMLのサイトについて、そのURLを入力してボタンを押すとshift-jisに変換して表示してくれるような変換サイト(Webフィルタ?)は世の中にありますでしょうか。 あればぜひ教えてください。 もし理論的に不可能でしたら理由を簡単に教えていただけるとありがたいです。 よろしくお願いします。

  • EUC-JPをShift_JISに変えても大丈夫ですか?

    YahooのジオクリエイターでHPを作っていたら文字コードが<meta http-equiv="content-type" content="text/html; charset=EUC-JP">このようになっているんですが <meta http-equiv="content-type" content="text/html; charset=Shift_JIS">に変えてしまっても問題ないんでしょうか? 複数ページがあって、いくつかのページだけEUC-JPで、ほかのページはShift_JISでした。 Shift_JISがメジャーと聞いたので全てのページの文字コードをShift_JISに変えてしまおうと思うんですが ほかのタグなど一切変えず文字コードだけ変えて、今まで普通に見れてたものが見えなくなったり、何か不具合が起こることはないんでしょうか? 今後、ジオクリエイター以外の環境でHPを作成・編集することもできるようにShift_JISで統一させておいたほうがいいですよね? よろしくお願いします。

    • ベストアンサー
    • HTML
  • auの絵文字のシフトJISコードの一覧

    auの絵文字のシフトJISコードの一覧 auの絵文字のシフトJISコードの一覧が、絵文字番号の順番ではなく、シフトJISコードの順番に載っているページをご存知の方いませんでしょうか? もしご存知の方がいましたらそのページを教えていただけるとありがたいのですが。 auの絵文字を外字に登録して、au携帯向けのページを作ったり、パソコンでもauの絵文字を表示できるようにしたいです。 パソコンは、WindowsXP HomeEdition SP3、日本語入力システムは、MS-IME Standard2003です。 よろしくお願いします。

  • 文字コードEUC→SHIFT-JISにすると動作しません

    http://cgikon.com/search/detail.php3?menu=1&cgi_id=412 上記の簡単なスクリプトを使いたいと思っています。 文字コードがEUCとなっており、そのままの状態で設置すれば動作します。 EUCではなく、SHIFT-JISにして動作させたいのですが、中に書かれている「EUC - JP」を「SHIFT - JIS」に書き換えて、またファイルの文字コードも「SHIFT-JIS」として保存しました。 またCSVデータも「SHIFT-JIS」に変換して保存。 変換したファイルをアップしてみましたが、表示される表の数値の箇所が真っ白になってしまいます。 一番上の行と一番左の列は表示されます。 足し算される数値の部分だけが表示されません。 どのようにすれば、EUCからシフトJISに変換して、動作させる事ができるのでしょうか。 アドバイスをお願い致します。

    • ベストアンサー
    • Perl
  • メッセージ作成時の文字コードにSHIFT/JISが見当たりません

    ネットスケープ7を利用しています。 メール表示の文字コード選択はSHIFT/JISに設定していますが 作成時の文字コードではSHIFT/JISが選択できません。 現在設定では ISO-2022-JPになっています。 困っているのは 英数大文字のチルダ記号が使えないことです。 こちらでチルダを書いて送ると 向こうでは クエスチョンマークに表示されているみたいです。 まあチルダが使えれば問題ないのですが。

    • 締切済み
    • Mac
  • 文字コードについて

    よろしくお願いします。 ホームページを作成しました。というより現在作成中です。 htmlの記述を確認しようと以下のサイト様より文法チェツクをしたところ、以下のように表示されました。 line 5: 指定されている文字コードセットは `Shift_JIS` ですが、実際のコードは UTF-8 のようです。 私は、文字コードの部分はShift_JISにしておきたいのですが、 このようなエラーはどのように、どの部分を変更すれば良いのでしょうか? 全く分からずに困っております。 どなた様か、ご指導の程よろしくお願いします

    • ベストアンサー
    • HTML