- ベストアンサー
文字コードについて
文字コードについて調べています!! ASCIIやunicode,jis,shift-jisなど色々なコードがあると思うのですが、 そもそも、パソコンには上記のコードや、表示⇒エンコード で選ぶことの 出来る、各文字コードの文字コード表が格納されているんでしょうか? ちょっとまだ勉強を始めたばかりで曖昧な質問になってしまったのですが、この疑問をどうして解消したくて… 色々と検索しても上記なようなことは探し出すことが出来なかったので どなたか教えてください!! よろしくお願いします!!
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 >このような認識であってますでしょうか? 以下が微妙なところです。 >保存(EUC-JPを指定したことにより文字コードはEUC-JPに変換される) >↓ >保存するにあたりunicodeに変換される。 テキストエディタは、よほど詳細な設定項目がなければ認識している文字コードで保存します。 (別名で保存する際に、開いているファイルと別の文字コードで保存できるようなソフトもあります) ですのでUnicodeへの変換を行わずにEUCのまま保存している可能性があります。 そういった場合には、デフォルトでShift-JISが選ばれている場合には、EUCで保存されているファイルを指定なしで開けば文字化けを起こします。 >質問の仕方が悪かったので何度も回答していただいて申し訳ございません。 大丈夫ですよ。 こちらの書き方が悪い部分もあるでしょうから、疑問に思ったことはいくらでも質問してください。
その他の回答 (4)
- SortaNerd_
- ベストアンサー率59% (309/522)
はい、コード表は格納されています。 UTF-8のように計算で求められるものについては分かりませんが、計算で求められないものには間違いなく表が必要です。 以前、 http://okwave.jp/qa4894892.html の質問に関連して探したのですが、Shift_JISのものを見つけました。 C:\WINDOWS\system32\c_932.nls というファイルがそれです。同じ場所に他の文字コード用のものもあるようです。 中を見ると、Unicodeに対応するShift_JISコードと、Shift_JISコードに対応するUnicodeが順に書かれていました。 このファイルを編集することで例えばメモ帳で「や」という文字を含んだShift_JIS形式のテキストファイルを作れなくすることができます。
お礼
ありがとうございます!! また一歩理解が深くなります! (まだまだよく分かってないようですけど><)
- SilverThaw
- ベストアンサー率32% (260/806)
No.1です。 >そういった変換するプログラムや文字コードの表などがPCにどのように格納されているのかが一番の疑問になってます。 >例えば、(中略)UTF用の文字コード表を持っている必要があるのでしょうか? 色々と技術的なこともあるのでざっと概略だけ PC(WindowsOS)の場合には、文字コードはすべてunicodeで管理されています。 何も設定がなければ文字コードは、unicodeもしくはデフォルト設定されたコードとして扱われます。 そして、unicode以外の場合にはunicode変換を行い表示に使用します。 変換を行う為には、算出式や文字コードの変換表が必要となります。 尚、UTF-8はunicodeのBMP面ですので特に変換表はありません。 >またそうだった場合はどこに格納されていて、ほかにはどんなものが格納されているのでしょうか? 格納場所は不明です(というか、気にしたことがない)。 WindowsでIMEを使用しているのであれば、 「IMEパッド」→「文字一覧」→「詳細表示」で特定の文字に対してのそれぞれの文字コードを一覧としてみることができますよ。
補足
何度もお答えいただいて本当にありがとうございます!! SilverThaw様が教えてくれた内容を元にさらにネットで情報収集して 下記の認識に至りました。 このような認識であってますでしょうか? ---------------------------------------------- 現在のwindows osの内部コードはunicodeになっている。 EUC-JPを指定して保存出来るエディタによってテキストファイルを作成し、保存、そしてメモ帳で開くという流れのは色々と調べた結果 EUC-JPで保存できるエディタでテキストファイル作成(この時点ではまだ文字コードを指定していないのでデフォルトのShift_Jisになっている(コンパネの地域と言語のオプション⇒管理⇒unicode対応でないはないプログラム言語⇒日本語、の設定によりShift_jisの設定となっている)) ↓ 保存(EUC-JPを指定したことにより文字コードはEUC-JPに変換される) ↓ 保存するにあたりunicodeに変換される。 ↓ メモ帳で開く(保存の際にEUC-JPを明示しているがメモ帳はEUC-JPに対応していないためShift_JISに変換されて開く) ↓ 文字化けしてしまう ---------------------------------------- といった流れなんですがこれはあってますでしょうか? 質問の仕方が悪かったので何度も回答していただいて申し訳ございません。
- SilverThaw
- ベストアンサー率32% (260/806)
No.1です >>表もありますが、ものによっては法則性があり計算式だけで変換できるものもあります。 >ここの部分を詳しく説明しているページなどはご存知ないでしょうか? 以下がそれなりに分かりやすい図がのっていると思います。 http://www.unixuser.org/~euske/doc/kanjicode/index.html 但し、JISについては「エスケープシーケンス」によって1Byte/2Byte文字の切り替えを行っているので、単純に当てはめることは危険です。 必ず「現在表示しようとしているのが1/2Byteどちらか」ということを保持している必要があります。 当然、文字コード体系は上記だけでないことは忘れないように。 (トロンコードとかも面白いし、昔々には12bitコードなんてのの変換処理も作ったこともある)
補足
なるほどこのように変換されるんですね!! 仕組みを理解することも目的なのですが、いま一番ひっかかっているのが そういった変換するプログラムや文字コードの表などがPCにどのように格納されているのかが一番の疑問になってます。 例えば、googleの検索ページは<meta http-equiv="content-type" content="text/html; charset=UTF-8">と宣言されているから正常に表示するには、UTF用の文字コード表を持っている必要があるのでしょうか?またそうだった場合はどこに格納されていて、ほかにはどんなものが格納されているのでしょうか? 度々、申し訳ございませんがお答えを期待しております。
- SilverThaw
- ベストアンサー率32% (260/806)
>そもそも、パソコンには上記のコードや、表示⇒エンコード で選ぶことの出来る、各文字コードの文字コード表が格納されているんでしょうか? 表もありますが、ものによっては法則性があり計算式だけで変換できるものもあります。(JIS、ShiftJIS、EUCは基本文字は相互に変換可能) http://ash.jp/code/ http://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89
補足
ご回答ありがとうございます!! 参考のURLのページ見ました(既に見ているページなんですが、僕が求めている部分は書かれていないようで><) >表もありますが、ものによっては法則性があり計算式だけで変換できるものもあります。 ここの部分を詳しく説明しているページなどはご存知ないでしょうか?
補足
ご返答が遅くなりました!! >大丈夫ですよ。 こちらの書き方が悪い部分もあるでしょうから、疑問に思ったことはいくらでも質問してください。 ありがとうございます!!! 本当に助かっております!!!! なるほど、保存する際は指定した文字コードにて保存されるんですね。 また更に根本的な疑問が起こってしまったのですが、作成したテキストファイルをHDDに保存する場合、Sjisを指定していた場合、「あああ」という中身だと「0X82A0 0X82A0 0X82A0」(本来は二進法で表現される)という風に保存されるという解釈であってますでしょうか? 。 そしてこの記事を参照にしたのですが http://www-06.ibm.com/jp/domino01/mkt/cnpages7.nsf/page/default-007ACA9B このファイルの名前を「あああ.txt」として保存する場合 ■NTFS ファイルシステムに保存する際は Unicode を使用(これはHDDに保存する際にファイル名はunicodeを使用するという意味ですよね?) という部分を参考にすると あああ.txtはファイル名は「U+3042 U+3042 U+3042 U+002E U+0074 U+0078 U+0074」(本来は二進法で表現される)とunicodeで保存される。 そして中身は「0X82A0 0X82A0 0X82A0」とSjisを指定して保存されるという流れになるのでしょうか? よろしくお願いします!!!!!