こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Windowsの標準文字コードについて

標準文字コードはシフトJISとされていますが、

例えば、windowsでメモ帳を使って文字を書いて、保存をした時。
保存する時の文字コードは自由に選択できますよね。

この時点だと、どこにシフトJISコードが使われているのかはサッパリ分かりません。

それで考えたのですが、

文章を保存する時では無く、

メモ帳に書いている時に使われている文字が、
シフトJISなのでしょうか?(その文字を16進数としてみた時にシフトJISの文字コードになっている)

つまり、
もともと、windows上でwebページのフォームに文字を入力するとか、
メモ帳で文章を書くと、
シフトJISとして書いている事になるのでしょうか?(シフトJISコードに対応した16進数で書いている)

それを、例えばメモ帳ならシフトJISコードを違うコードに変換して保存する機能が付いている
ブラウザには、その機能は無いから、フォームからはシフトJISコードとしてのデータしか遅れない。

そう考えると、
windows上では入力する全ての文字がシフトJISコードという事になり、
標準文字コードがシフトJISという言葉にも納得がいくのですが、

上記の理解で正解なのでしょうか?

よろしくお願いします。

投稿日時 - 2006-11-30 03:08:57

QNo.2571190

すぐに回答ほしいです

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

>まず自分が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であけて、保存の際にコードを選択すると任意のコードに変換することができます。

投稿日時 - 2006-11-30 18:02:48

お礼

今まで、いくつか本を借りて呼んでもみましたが、今一歩良く分かりませんでした。cdsdasdsさんから教えてもらった内容から、不思議だったwindowsの内部文字コードとは何かが分かった気がします、ありがとうございました。

投稿日時 - 2006-12-02 17:10:43

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

>標準文字コードはシフト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の変換を行っているということです。

投稿日時 - 2006-11-30 03:42:43

お礼

ありがとうございます。さっそく実際に試してみました。
EUC-JPで保存できるエディタでテキストファイルを作って、
そのファイルをメモ帳で開くと文字化け。

これはwindowsがEUC-JPのファイルをシフトJISとして開いたからなんですね。

2つ疑問があるのですが、

まず自分がEUC-JPで保存したファイルを、
EUC-JPを保存できたエディタで開くと見れるのはどうしてでしょうか??

EUC-JPのコード→unicode→シフトJIS(このままだと文字化け)

エディタでEUC-JPのファイルを文字化けせずに見られるのは、
エディタがEUC-JPをシフトJISのコードに戻しているのでしょうか?

2つ目は、ブラウザで文字化けする時に、
正しいエンコードを選ぶと正しく表示されるのは、
指定された文字コードからシフトJISコードに変換して表示しているから、正しく表示されるのでしょうか?

投稿日時 - 2006-11-30 08:38:19

あなたにオススメの質問