先日のことですが、Windowsのメモ帳で作ったテキストファイル(拡張子→.txt)を、マックで開こうとすると開きませんでした。
きっと皆さまも・・
送られてきたメールを読もうとしたら、よくわからない記号とかの羅列に文字化けして読めない・・・
という経験はきっと多くの人が経験していると想います。
こういう文字化けって・・
コンピューターに限らず、携帯電話でもよくある話ですね。
まぁ・・原因は「文字コード」にあるのですが・・・
と言うわけで今日は「文字コードのお話」です。
文字コードって何?
「Shift_JIS」
「EUC-JP」
「UTF-8」
上の記号?を見て、何の事かお分かりになるでしょうか?
そうです。
これは文字に関する規格の種類ですね。
この文字に関する規格の種類によって、ウェブサイトが文字化けして見えたり、送られてきたメールが読めない・・・なんてことになるのです。
もし、せっかく作ったホームページが文字化けしていたら大問題ですよね。
なので、今日は文字化けさせないための基礎知識として、「文字が化ける」原因をお話してみましょう。
まずは「Shift_JIS」です。
「Shift_JIS」の誕生
以前はいたるところで目にしたJISマークも随分見かけなくなりましたが、JIS(日本工業規格(Japanese Industrial Standards))の略で、工業標準化法に基づいて工業にかかわるあらゆるものを規格化しています。
ネジや歯車、電線や、コンセント、階段の幅や高さ等々・・・・
業種を問わず、ありとあらゆるものが、JISによって規格化されています。
それらの規格をまとめた、JISハンドブック という公式本があり、たとえば「ネジ」だけでも厚さが5cmくらいの本になるほど細かくぎっちりと規格が定められています。
とうぜん、コンピュータに関する規格もちゃんとあって、キーボードの文字の配列といった、物理的なことだけではなく、演算方法や、プログラミング言語、さらには、HTMLや、CSSまで定められているのです。
その中に、文字に関しても規格があって、
たとえば、
「あ」は
→ 11110(このコードは架空のコードです)
「い」は
→ 11111(このコードは架空のコードです)
のように、すべての文字に番号を割り振って管理されています。
これを文字コードと言い、JIS規格の主な文字コードとして「シフトJIS」があります。
HTMLを実際に触れたことがあるのなら、
SJIS、あるいは、Shift_JIS
という文字コードを見たことがあると思いますが、まさにそれです。
この「Shift_JIS」の生まれた背景ですが・・・
もともと、古いパソコンでは8ビットしか処理できなかった。
つまり、基本的には「255種類の文字」しか扱えませんでした。
そのために、英数字、記号、カタカナしか表示できなかったのです。
しかし、
コンピュータが16ビット、32ビットと進化していき・・・
やがて、すべての日本語「漢字」が表示できるようになっていきました。
この過程でできたのが、「Shift_JIS」です。
「EUC」の誕生
ところが、コンピューターが世界中に普及すると、日本語だけではなく、朝鮮語、中国語、アラビア語など、ありとあらゆる言語に対応する必要がでてきました。
ここで、「Shift_JIS」の様に日本が独自に決めた規格のように、世界各国がそれぞれの国が独自に文字の規格を定めるとどうなるでしょうか?
そうです・・・
各国がそれぞれの文字を独自の規格を作ると、文字の規格が乱立してしまい大変なことになります。
そこで、世界各国の文字を扱える規格を制定したのが、
EUC(Extended UNIX Code)です。
名前が表す通り、もともとUNIXというOS(オペレーションシステム)のために開発されたのですが・・・
日本語では、EUC-JP という文字コードとして普及しました。
このEUCの規格によって、初めて世界各国のウェブサイトが、どこから見ても文字化けすることなく、それぞれの国の言語で閲覧できるようになりました。
ところが・・・・・
これで、めでたしめでたし、とは行かないのです・・・
EUC は様々な言語を表現できる点で画期的でしたが・・・
「各言語ごとにEUC切り替える必要がある・・・」
という問題がありました。
つまり「EUC」では、
「同時に複数の言語を表示させることは出来ない・・」
と言う訳ですね。
人の欲求は際限無く・・・
例えば、「日本語とアラビア語を同時に表示できないか?」 ・・
というような考えが出てきます。
「UTF-8」の誕生
そこで、世界各国の言語を全部詰め込んでしまおう、と策定されたのが、
Unicode(ユニコード)という規格です。
ただ、Unicodeにもいろいろ種類があるのですが・・・
ホームページで多く使われる「HTML」では
UTF-8(Unicode Transformation Format-8)
が一般的です。
この「UTF-8」という文字コードは、 「世界各国の文字を同時に表現できるという」とても柔軟な規格となっています。
・・・と・・・言うことで・・・
今後コンピュータの世界で使用される文字コードとしては、
この「UTF-8」が広まっていくと考えられています。
いずれにしても、
利用する我々には、文字コードの規格が統一されていない現状は、迷惑な話・・
とも言えるのですが、ウェブサイトの文字コードとして、
Shift_JIS
EUC-JP
UTF-8
の3種類があるのは、そういう理由なのです。
結局、色々とウェブサイトを閲覧していて文字化けしているページに遭遇した場合・・・
そのほとんどの場合が、この文字コードが間違っているために起こります。
たとえば、Shift_JIS で作ったファイルなのに、
HTMLでは、UTF-8 ですよ、と書いてあると、
ブラウザは、Shit_JISのファイルを無理やりUTF-8で表現しようとして、
まるで暗号のような文字化けが起きるというわけです。
テキストエディタを利用している人なら解ると思うのですが、ファイルを保存するときに、文字コードを選べることがあるのですが・・・
このときに、文字コードを間違えないように保存してアップロードすれば、 文字化けの発生を最小限にすることができます。
文字化けに悩んだら、今日のこの話を思い出してみてくださいね。
今日のまとめ
文字コード(その他諸々のそうですが・・・)は、 必要に応じて進化しています。
もっとも・・・
進化によって、文字コードのような整合性のつかない問題が発生しているように・・
「進化によって生じる新しい問題」
は避けてはとおれないものだとしても、だからといって進歩しない選択肢はないわけで・・・
だからこそ、私たち人間も「その時代・その環境」にあわせて進化を続けていくことが必要なようです。
昨日より今日・・・
今日より明日・・・
3歩進んでは、2歩(時には5歩・・)下がりながらも、バージョンアップが必要です。
もっとも人間の場合・・・
機械等とは違い、バージョンアップをするというには・・・
「老化」
していくことをも含んでいるようですので、あまり急ぎたくもないような気もしますが(笑)
時代の変化に置いてきぼりにされないように、進化していきたいものです。
まぁ・・・
良くも悪くも、老化することでしか得ることができないこともあるようです。
まぁ、のんびりと急いで生きましょうか
相談のご予約メールフォームはこちら
「有料電話相談」はこちら
今日の一言
「人生の、苦楽重ねた、皺誇り」
今日の一曲
美空ひばり/川の流れのように