• ベストアンサー

UTF-8によるマルチリンガル

UTF-8は多言語表示ができますが、日本語、ドイツ語、フランス語、中国語、韓国語、インド系、アラビア系などキリがないほど文字の種類があると思うのですが、全ての文字の文字コードを持っているのでしょうか?それとも、ロケールを見て切り替えなどを行っているのでしょうか? また、 UTF-8ベースのWEBアプリを使用時に日本語を入力するとき、UTF-8で入力するなど、意識する必要があるのでしょうか?普通ウィンドウズを使用するとシフトJISで入力するのかと思います。 もし意識しないので良いのであれば、どういうメカニズムなのでしょうか?

  • fabu
  • お礼率69% (384/554)

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

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.3

#1です。 >まだ余裕があるとは!納得しました。 補足をしておくと例えばWindowsXpにおいて210万文字全てが表示できるわけではありません。 (表示できない文字は「?」に置き換わるかと思います。) さすがに210万文字はWindowsのデフォルトのフォントが全て対応していないからです。 メジャーな漢字、ハングル文字、アラビア文字、フランス語、ドイツ語等の欧州文字等は WindowsXpがデフォルトで持っているフォントで表示可能です。 (日本語版Windows2000ではフォントを別途インストールする必要があります。) >UTF-8とシフトJISが混在することになりませんでしょうか? 少なくとも1つのWEBページにおいて文字コードが混在する事はありません。 というか混在したらどちらかが文字化けします。 またmetaタグで文字コードを指定しない場合、普通ブラウザが自動判定しますが 特にEUCとSJISの判定は確実な方法は無いため文字化けの原因になります。 ちなみにSJIS、EUC、UTF-8とも「a」等の 半角英数字と呼ばれる部分の文字コードは同じです。 ですから半角英数字だけのページであれば 文字コードは意識しなくてもよいでしょう。 Windows自体は内部的にUTF-16と呼ばれるコードで保持するようなので どこかしらでUTF-16への変換は発生しています。 またWEBページを作る人にとっては文字コードは意識する必要がある部分だと思います。 >WINであればシフトJISで入力しているのではないかと思うのですが これはWEBページで何か入力する時の事をいっておられるのでしょうか? だとすればWINであればシフトJISで送信されるというのは間違えです。 私自身、WEB関連が専門ではないので詳しくはないのですが 確かEUCのページならEUCで、SJISのページならSJISで送信されると思います。 (WEBブラウザが文字コードを変換して送っている)

fabu
質問者

お礼

ありがとうございます。 よく理解できました。

その他の回答 (3)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

ちなみにですが: 現状では「21ビット」といっても u+000000~u+10FFFF までです. が, これが全部使えるわけではありません. 本来, UTF-8 で surrogated pair を使う必要はないんだけど UTF-16 との関係で plane0 (BMP) の u+00D800~u+00DFFF は穴になります. また, plane14 (u+0E0000~u+0EFFFF) は各種タグに使うことになっています. 今定義されているのは言語タグ (u+0E0001) だけかな? これを使えば (日本語や中国語, 英語などの混ざった) 文字通りの「多言語テキスト」が表現できるんだけど, 「より上位のプロトコルで言語が表現できる場合には使わない方がいい」とまで書かれてるんだよな~. さらに, planes15, 16 (u+0F0000~u+10FFFF) は外字に予約されているので, 「どのシステムでも同じ文字」という保証はありません. その他, いくつか「使ってはいけないコードポイント」が存在するので, 実際に使えるコードポイントは 100万個もありません.

fabu
質問者

お礼

ありがとうございます

  • kabaokaba
  • ベストアンサー率51% (724/1416)
回答No.2

>WINであればシフトJISで入力しているのではないかと思うのですが、UTF-8とシフトJISが混在することになりませんでしょうか? 当然どこかで変換しています. 受け取ったデータがどのような状態なのかを判断して 適切に処理しています. #適切に処理しないものも中にはあるかと思いますが(苦笑) また,Web関係の諸々のものは そのような処理ができるように, 最初から考えられて設計されています.

fabu
質問者

お礼

ありがとうございます。 アプリケーション側で処理をしている、もしくは、アプリケーションサーバで自動変換をしている、という感じでしょうか。

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

>全ての文字の文字コードを持っているのでしょうか? 持っています。 約210万文字(21bit) が既に予約されていますが31bitまで使える事になっており まだ余裕があります。 http://ja.wikipedia.org/wiki/UTF-8 >UTF-8ベースのWEBアプリを使用時に日本語を入力するとき、UTF-8で入力するなど、意識する必要があるのでしょうか? あります。 例えばWindowsXpのメモ帳なら保存するときに文字コードが 選べるはずです。 またhtmlで <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> のようにcharsetを明示的に指定してください。

fabu
質問者

補足

ありがとうございます。 まだ余裕があるとは!納得しました。 2つ目なのですが、 ページ作成時ではなく、UTF-8で作られたWEBサイトを使うときのことを考えていました。普段何気なくフォーム入力をしますが、WINであればシフトJISで入力しているのではないかと思うのですが、UTF-8とシフトJISが混在することになりませんでしょうか?

関連するQ&A

  • utf-8

    web制作初心者です。 webサイトをつくっているのですが、utf-8だと日本語が文字化けしてしまいます。 shift-jisにすると正しく表示されます。 なぜutf-8ではダメなのかがよく分かりません。他に何か指定が必要なのでしょうか? 宜しくお願いします。

    • ベストアンサー
    • HTML
  • UTF-8とは何ですか

    今更ながらですが、日本語のサイトは全部SHIFT-JISだと思ってました。 ところが日本語のサイトでもUTF-8が多いよと聞きました。 冗談だろと思ったらOKWAVEが既にUTF-8・・・ ヤフーもgooも大手サイトはほとんどUTF-8でした。 日本語=SHIFT-JISだと思ってmetaか何かで指定していますが、 ひょっとしてこれは作り直した方がいいのでしょうか。 UTF-8で検索したら日本語などの2バイト圏を考慮してないとか そういうブログも見つかったのですが、 大手サイトでUTF-8を採用しているということは、このブログはガセなのでしょうか。

    • ベストアンサー
    • HTML
  • UTF-8ファイルを文字化けなく表示したい

    Windows7+IE8(version8.0.7600)を使っています。 UTF-8で作成したファイルをブラウザで開くと日本語が文字化けするため、タスクバーの表示--エンコードでその都度シフトJISに転換する必要があり、面倒です。 UTF-8のファイルを自動的に文字化けしない日本語で表示させる方法はないでしょうか?

  • 入力ロケールの設定方法

    以前 Windows 2000 の英語版に日本語IMEをのっけて使用していました。その時はAlt+Shiftか何かで英語⇔日本語と入力ロケールの切り替えをしていました。 今は98SEの日本語版を使っています。同じようにロケールの切り替えができるようにしたいのですが、当時どうやってそう設定したか覚えてません。また98SEの場合は具合が違ってくるのかな?とかも思います。 どなたか教えて頂けないでしょうか。

  • Cygwinで日本語化け(UTF-8)

    web上の情報を元にnkfとmoconv.shを入れてShift-JISエンコードの日本語が文字化けしなくなったんですが、UTF-8エンコードのファイルが依然文字化けします。 テストするためにsjis.htmlとuft8.htmlを作って、↓な感じでやってます。 >export LANG=ja_JP.SJIS >cat sjis.html 日本語がちゃんと表示されます。 >export LANG=ja_JP.UTF-8 >cat utf8.html 文字化け どなたかご存知でしたら教えてください。

  • 文字参照からUTF-8への変換

    MySQLデータベース上にlatin1の文字列データが格納されています。このデータは、具体的には&#nnnnn;のような10進型文字参照の連続です。ウェブアプリケーションを介してブラウザー上では日本語、中国語、アラビア語その他言語の文字列として表示されます。 このデータをUTF-8に変換し、新たなフィールドに格納するためには、どのようにしたら良いでしょうか。MySQLだけで平易に解決できるならそれに越したことはないのですが、PHPまたはASP.NETによるソリューションでも構いません。

    • ベストアンサー
    • MySQL
  • インターネット Unicode(Utf-8) 表示されない。

    こんにちは、 環境:Windows2000PRO、IE6.0 インターネットをブラウズすると、エンコードが Unicode(Utf-8) になっていて文字化けしたり、表示されなくなります。 画面で右クリックしてエンコードを日本語(SHIFT-JIS)にすると直ります。この状態をどのように直せばいいのでしょうか? 何かお分かりの方がいましたら教えてください。 よろしくお願いします。

  • UTF-8で携帯対応するには?

    PHP5.0.4 Mysql4.0.25 今まで文字コードが、Shift-jisでMysqlを使用しておりました、 鯖移転に伴い、文字コードがutf-8になったのですが、 Shift-jisのままでも、表示は普通にされるのですが、 名前をあいうえお順に表示させようとすると、 うまく表示されないので、全てをutf-8に変換したら、 あいうえお順に表示されるようになったのですが、 携帯用サイトでは基本的に Shift-jisでないと駄目みたいで、表示されなくなってしまいました・・・ どうすればよいでしょうか?

    • ベストアンサー
    • MySQL
  • UTF-8での保存について

     エディットボックスに入力してある日本語の文字列をUTF-8やUTF-8Nでテキストファイルに保存したのですがうまくいきません。  UTF-8の場合はファイルの先頭に3バイトのBOMをつければいいらしいので、 ファイルの先頭に0xEF,0xBB,0xBFの3バイトを追加してテキストファイルに保存しましたがメモ帳で開くと文字化けします(メモ帳で開くときは文字コードをUTF-8にして開いてます)。 作成したテキストファイルをバイナリエディタで開いてみると先頭の3バイトはEFBBBFとなっているので何も問題はないと思うのですが、どうして文字化けするファイルができてしまうのでしょうか? --- 実行環境 --- Microsoft Visual C++ 2010 Express WIN32 ユニコードビルド C言語

  • UTF8やShiftJIS

    日本語宣言にはEUR-JP,UTF8やShiftJISなどありますが、どの宣言が一番文字化けの可能性が少ないのでしょうか?

    • 締切済み
    • CSS

専門家に質問してみよう