文字コードやエンコード等がよく分かりません。
文字化けについて、例えば、1.txtというテキストファイルがあるとして、そのファイルを作成する時に、SJISを指定して作成したら、そのファイルの文字コードがSJISで作成される。そのファイルをSJIS以外のエンコードを指定されたエディタで開くと、文字化けする。
ということでしょうか?
>文字化けについて、例えば、1.txtというテキストファイルがあるとして、そのファイルを作成する時に、SJISを指定して作成したら、そのファイルの文字コードがSJISで作成される。そのファイルをSJIS以外のエンコードを指定されたエディタで開くと、文字化けする。
これは正しいです
---
まず、コンピュータというのものは、内部は全て0か1のデジタルで処理しているという大前提があります。
つまり、文字のデータも0か1の集まりです。
0と1の集まりを文字にしたり、文字を0と1の集まりにする「ルール」が、SJISやJIS、EUCなどの「文字コード」と呼ばれているものです。
---
日本語より先に、英語の文字、つまり半角のABCD……という文字でさえ、コンピュータが出来ていろんな人がいろんなルールで作成してしまった為、ルールが統一されていません。
多くの場合ASCII(JIS)コードというもので扱われますが、メインフレームというコンピュータではEBCDICコードを主に使います。
英語でさえそうなのですから、日本語では更に複雑で難しいルールが複数乱立してしまいました。
---
ある文字コードで書いたテキストファイルを別の文字コードで読み込んでしまうと、間違ったルールのまま翻訳してしまい、結果、ワケの判らない文字や文字でないものが混じり合った滅茶苦茶な翻訳結果になってしまいます。
---
最初に「このテキストファイルの日本語はJISコードです」等と宣言するルールがあれば、文字化け問題など起きなかったかも知れませんが、そういったルールは作られませんでした。
つまり、コンピュータは、そのテキストファイルが何の文字コードを使っているのか判らないまま、データを読み込んで、ある程度読み込んでから推察してコードを決めています。
更に、そのルールは「ルール自体が被っている」ので「このテキストファイルで使用されている文字コードは何か?」の判断は、計算だけでは完全にはできず、コンピュータ任せではできなくなっています。ある程度は出来ますが、100%ではありません。なので、大抵のテキストエディタには、文字コードを人間が指定して読み込む方法が必ず用意されています。