- ベストアンサー
Windowsの標準文字コードについて
- Windowsの標準文字コードはシフトJISとされていますが、保存する時の文字コードは自由に選択できます。
- メモ帳に書いている時に使われている文字はシフトJISであり、webページのフォームに文字を入力するときもシフトJISとして書いていることになります。
- Windows上では入力する全ての文字がシフトJISコードとなり、標準文字コードがシフトJISということに納得できます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>まず自分がEUC-JPで保存したファイルを、 >EUC-JPを保存できたエディタで開くと見れるのはどうしてでしょうか?? >EUC-JPのコード→unicode→シフトJIS(このままだと文字化け) >エディタでEUC-JPのファイルを文字化けせずに見られるのは、 >エディタがEUC-JPをシフトJISのコードに戻しているのでしょうか? 基本的にはその通りです。EUCに対応したエディタは、読み込み時に自動的に、あるいは明示されることにより、EUCコードを変換します。 変換の流れはOSの機能をどこまで使うかによって EUC-JPのコード→シフトJIS(→unicode OSが自動処理) EUC-JPのコード→unicode(→シフトJIS) (OSの内部コードにアプリが変換) の両パターンありえると思います。 >2つ目は、ブラウザで文字化けする時に、 >正しいエンコードを選ぶと正しく表示されるのは、 >指定された文字コードからシフトJISコードに変換して表示しているか>ら、正しく表示されるのでしょうか? その通りです。例えばInternetExplorerにはその専用の変換ルーチンが用意されています。実際WEBページやテキスト文書をIEであけて、保存の際にコードを選択すると任意のコードに変換することができます。
その他の回答 (1)
- cdsdasds
- ベストアンサー率52% (114/217)
>標準文字コードはシフトJISとされていますが、 これが誤りを招きやすい表現ですね。 Windows 2000やXPの内部コードはunicodeです。 ところが、Windows95とかではシフトJIS(マイクロソフトJIS)が用いられていました。また、それ以前のPCでも一部に違いはあるものの基本的にはシフトJISが使われていたのです。 このため、PCではシフトJISが標準ということになり、そのままでは問題があるのでWindows 2000やXPではunicodeとシフトJISの変換を行っています。 アメリカのMicrosoftで普通に使っている分にはこのような事情は余り重要視されないため、おまけソフトであるメモ帳にはシフトJISがコードのリストに無いのです。 unicodeを内部コードとしているWindos OSでは日本のようなunicodeとは異なる文字コードを標準的に使用している国で利用する場合、ファイル保存や画面出力などの際にunicodeから指定された文字コードに内部的に変換して保存や出力を行います。逆にファイルを開いたりする場合も同様に変換して受け取っているのです。 ではどこで指定しているのかというと、コントロールパネルの「地域と言語オプション」です。「詳細タブ」を見るとUnicode対応でない言語として日本語が選ばれていますよね、 まとめますと、今のWindows OSではUnicodeで文字を処理しているが、画面やファイル等に出力したり、ファイル等から入力されるときにシフトJISとUnicodeの変換を行っているということです。
お礼
ありがとうございます。さっそく実際に試してみました。 EUC-JPで保存できるエディタでテキストファイルを作って、 そのファイルをメモ帳で開くと文字化け。 これはwindowsがEUC-JPのファイルをシフトJISとして開いたからなんですね。 2つ疑問があるのですが、 まず自分がEUC-JPで保存したファイルを、 EUC-JPを保存できたエディタで開くと見れるのはどうしてでしょうか?? EUC-JPのコード→unicode→シフトJIS(このままだと文字化け) エディタでEUC-JPのファイルを文字化けせずに見られるのは、 エディタがEUC-JPをシフトJISのコードに戻しているのでしょうか? 2つ目は、ブラウザで文字化けする時に、 正しいエンコードを選ぶと正しく表示されるのは、 指定された文字コードからシフトJISコードに変換して表示しているから、正しく表示されるのでしょうか?
お礼
今まで、いくつか本を借りて呼んでもみましたが、今一歩良く分かりませんでした。cdsdasdsさんから教えてもらった内容から、不思議だったwindowsの内部文字コードとは何かが分かった気がします、ありがとうございました。