• ベストアンサー

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

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

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

  • ベストアンサー
  • 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が混在することになりませんでしょうか?