• ベストアンサー

ネット上での文字コードの取り扱いについて

あるWebページがあるとそれはそれを作成したOSなどに依存した文字コードで作成されているとおもいます。 それを表示するブラウザは通常自動でその文字コードを認識して人間がわかる「文字」として画面に表示されるとおもいます。 ところで、ブラウザの画面から文字を入力させた場合、その文字コードはどこで決定されるのでしょうか? A(OS 日本語Windows)、B(OS UNIX)というネット上のPCがある場合それぞれから入力された文字コードは異なるのでしょうか? 異なる場合、AとBからの入力情報をデータベースに保存する場合統一した文字コードで保存する必要があるとおもいますが、いちいち文字コードを判断して変換しているのでしょうか? 文章がへたですいませんがご教示ください。

  • gorou
  • お礼率45% (83/184)
  • PHP
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

サーバー側での入力された文字コードの検出/変換には  ・php  http://php-web.net/program/mb.html  ・CGI(perl)  http://pmakino.jp/tdiary/20061027.html 辺りを読んでいただくとして それぞれの環境での入力されるcharsetですが 通常はFORM入力画面のあるページに使われているcharsetが使われることが多い筈です  筈です と言うのは そもそも、そのあたりはブラウザの仕様次第ですし  また例えばShift_JISで書かれたページをきちんとShift_JISで表示しているかもしれませんが  EUCで読み込んで文字化けしたままでFORM入力する可能性すらあります それについては FORMタグのaccept-charset属性 というものが有ります http://bakera.jp/ref/html/attribute/accept-charset  んが! ブラウザが対応していないと無意味です Mozilla系は割りと早くに対応したはずですが MSIEだとたぶんIE7でようやく対応したんじゃ無かったかなあ?? 関連した話は やや古いページですが http://hp.vector.co.jp/authors/VA014833/charset.html あたり

その他の回答 (1)

  • shred
  • ベストアンサー率35% (25/70)
回答No.1

例えばテキストボックスに入力する場合ですね。 このときの文字コードはブラウザ側で変換されるので サーバ側で変換する必要はないと思います。

関連するQ&A

  • Web上で「~」が文字化けして表示されてしまう

    Web上の画面から入力したデータを、サーバー上のデータベースに保存するシステムにおいて、入力(保存)されたデータが文字化けして表示されてしまうことがあります。 具体的には、「~」と入力した場合、再度その画面を呼び出して表示してみると、「?」に文字化けしてしまいます。データベース上は「~」で保存されているのですが、どうもweb上で表示する際に文字化けしているようなのです。 なお、環境は、ブラウザがIE6.0、画面はJSPにて作成、データベースはOracle8です。 文字化けの起こる原因もしくは対策など、ご存知でしたら教えてください。

    • ベストアンサー
    • Java
  • PHPの文字コードについて

    PHPとmysqlの文字コードの関係について 1.データベースは文字コード utf8_unicode_ci で作成しています。 2.以下のようにテーブルを作成しました。 CREATE TABLE `test` ( `qid` varchar(10) NOT NULL, `qtitle` varchar(255) default NULL, PRIMARY KEY (`qid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 3.show.phpの中で以下のように 出力しようとすると文字化けします。 show.phpファイルは文字コードutf8で保存しています。 <?php print($qTitle); ?> ブラウザの文字コードの設定はShift-Jisです。 ブラウザの文字コードを変えずに正しく表示させるためには どうすればいいのですか? ご教授よろしくおねがいします。

    • 締切済み
    • PHP
  • 文字コード

    unixで記述したファイル(恐らくはEUCコードと思われます)はDOS環境や、場合によってはunix上のviやlessなどでも、 ^M が行末に表示されてしまいうっとうしいことがあります。 1)この制御コードは一体何なのですか? 2)どのような場合、この制御コードが挿入されますか?あるいは、どのような場合、このコードが表示されるのですか? 3)"^M"が表示されてしまっている場合、どのようにすれば表示がされなくなるのでしょうか? (その場しのぎ的ではあるが、nkf -s などとしてSJISに変換させれば、dos系のvi や lessではまともに表示されます。他の方法を教えてください...例えば、vi や lessを文字コードを指定して起動するなど...) #そのほか、文字コード関連でツボが有りましたら教えてください。

  • 【unix】nkfで文字コードを変えずに改行コードを変えたい

    unix(BSD)初心者です。 PHP経由でunixを操作、ファイルの加工をしております。 nkfコマンドにてLF改行をCR+LF改行にしたいのですが、 ・文字コードは無変化で改行コードだけ変える などということはできるのでしょうか? いろいろな文字コードのファイルが混在している場合に文字コードはそのまま保ちつつ改行コードはCR+LFに統一したいのです。 お詳しい方よろしくお願いします。

  • データベースと文字コードの関係

    お恥ずかしい話ですが、文字コードのことが良くわかっておりませんので、utf-8を使ったデータベースをWindowsから取り扱う方法を教えて下さい。 Excelマクロからフリーのデータベースを使って簡単なアプリケーションを作成しようと思っています。 軽くて設定も簡単なSQLiteを使いたいのですが、文字コードがutf-8になっているとのことで、Windows上でCSVファイルをutf-8で保存してから、SQLiteのデータベースにインポートしてみました。 Windwosサーバー上にあるSQLiteに対して、コマンドラインでSELECT命令を発行したり、Excelのデータベースクエリーを実行したりしてみましたが、当然というべきか文字化けしてしまいます。 Excelのシート上で入力したS-JISの値をutf-8のSQLiteに書き込む(また、Excel上でSQLiteのコードを文字化けさせずに表示させる)には、どうしたらよいのでしょうか?

  • 携帯でだけ文字化けするのはなぜ?

    PC用サイト、携帯用サイトを作成しているのですが、 ある画面では携帯用だけ化けるのです。 動きは以下のような感じです。 1、画面Aのテキストエリアに文字を入力 2、画面Aの「確認画面へ」ボタンで画面B(確認画面)を表示   (画面Aで入力された内容が表示される) 3、画面Bには「戻る」「登録」ボタンがあり、「戻る」で画面Aへ戻る。 4、画面Aが表示され、テキストエリアに入力されていた内容が表示された状態となる。 という感じです。 やっていることは、 画面Aで入力された内容を画面Bではhiddenでも持たせておいて、 画面Bの「戻る」で画面Aが表示された場合はそのhiddenの値を テキストエリアにセットしているだけです。 当然PC用画面はこの方法で問題ないです。 なぜ携帯用ブラウザだと化けてしまうのでしょうか? 日本語だと化けるだけで、当然英数字は化けません。 何か回避策があれば教えてください。 ちなみに、PHP4.3で開発中、文字コードはUTF-8  です。

    • ベストアンサー
    • PHP
  • 文字コードについて

    文字コードについて質問をさせてください。 文字コードにはさまざまな種類があり、種類によって読み取り方や表示方法が違うということが分かりましたが、 キーボードから入力した情報をコンピュータが読み取る信号(みたいなもの)は同じと考えてよいのでしょうか?電気的なことにはあまり詳しくありませんが、キーボードから何らかの入力を行うと、コンピュータに何らかのインプットがされるわけで、その信号(のようなもの)はどんな機種のどんなOSのどんなパソコンから行っても同じで、それをどの種類の文字コードで読むかによって表示される言語が異なる。 という理解でよいのでしょうか? 上記理解で良い場合、文字コードの違いや機種やOSの違いがあったとしても、もとの情報は同じなので、何かしらの方法で互換がとれると考えられるのでしょうか? 質問の意味が分かりにくかったらご指摘ください。 よろしくお願いします。

  • 文字コードの扱い

    文字コードの根本的な点が疑問で寝るに寝れません。 Windows上で、 メモ帳や、ブラウザ上での入力をすると、 その文字コードは全てSJISになると聞いた事があるのですが、その入力した時の文字コードがSJISになるという設定は、一体どこでされているのでしょう?(IME?OSの設定?) また、この入力する時の文字コードというものは変えられるのでしょうか? 個人的には、 キーボードのボタンを押す→OS→IME→OS→アプリケーション(メモ帳や、プラウザ) この流れなのかなと思っていたので、もしかして、キーボードのボタンを押す事に、対応したSJISの文字コードが、OSに送信されているのかな~と、考えていました。 (半角入力なら押した瞬間に、日本語入力ならEnterで文字入力を確定した瞬間に) 考えてたら、疑問が疑問を呼び、困っています。 宜しくお願いいたします。

  • MySQLへ登録する際の文字コード

    以下の様な場合には、データベース上では 何の文字コードで登録されているのでしょうか? (1)WEB画面上はEUCで入力 (2)(1)で入力した情報をMySQLに登録する。  この際、MySQL環境では文字コードがujisで設定されている。

    • ベストアンサー
    • MySQL
  • 文字コードについて教えてください。

    ホームページを作成するときに指定する文字コードをどうしたらいいのか迷っています。 ウインドウズ環境でホームページを作る際、入力された文字は秀丸などの特別なソフトを使わなければ自動的にShift JISコードになると思うのですが、この場合、タグを <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS"> と指定するべきでしょうか?それとも、 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp"> と指定するべきでしょうか? ISO-2022-JPで指定した場合、ブラウザが必ずしも自動判別してくれないこともあるのでしょうか? また、CGIスクリプトはShift JISで入力するとエラーを起こすことがあると聞いたことがあります。 ホームページを作成する場合には、常にISO-2022-JPかEUCの文字コードで作成するようにしたほうがいいのでしょうか? いろいろ検索して調べてみたのですが、どうもよくわかりません。宜しく御願いします。 なお、gooのホームページを閲覧するときも頻繁に文字化けしています(文字コードがEUCに指定されていないのはなぜでしょうか?)。