始めの言葉

「プリンターから印刷できて当たり前」と、ユーザーからもSIerからも軽視されがちなプリンターの世界ですが、実際にはお困りだったり、思ったような印刷結果が得られないまま我慢してお使いの皆様のために、今までの経験が役立てばと、このブログを立ち上げました。印刷の基本から、応用情報、問題の解決方法を情報発信すると共に、PDF化など、これからどうするかについても、ご相談に乗れれば幸いです。ご質問はコメントでお寄せください。

2015年3月22日日曜日

文字コードの話 - 文字化けはなぜ起きるか?

基礎を掘り下げて考えて行くと、大きなテーマの一つとして「文字コード」に行きつきます。
AS/400に限らず、どんなコンピューターの世界では、情報を正しく伝えるという基礎中の基礎と言える目的を実現するために、様々な仕組みが考え出されました。
その中でも、文字コードは大きな要素となっていますので、これを正しく理解しておく必要があると思います。
IBMのAS/400や大型のメインフレームでは、文字コードは、EBCDIC(エビシディック)と呼ばれる文字コード体系で決まっています。一方で、Windowsの世界では、文字コードはShift-JIS(シフトジス)や、Unicode(ユニコード)で、文字コードが決まっています。
この両者の違いが、文字化けの原因と言ってもよいのではないでしょうか?
そもそもコンピューターの世界は、英数文字だけで始まったわけで、そのため文字コードもSBCS(Single Byte Character Set)だけでした。しかもアルファベットも大文字だけでした。
そこへ、少しでも日本語を表現するために、カタカナだったら文字数が限られていてSBCSの範囲に収まると考えられて、空いている文字コードにカタカナが当てはめられました。
しかし、同時にその文字コードにアルファベットの小文字も当てはめられたのが、混乱の原因になってしまったと言えます。
これでは、カタカナとアルファベットの小文字は、共存できないということになります。
下の左側の表は、小文字を追加しただけの13219というIDの古い文字セット(ただし、漢字やひらがなのためのDBCS(Double Byte Character Set)も含んでいます)です。例えば"A"の文字コードは"C1"、"9"のコードは"F9"と読みます。
右側の表は、左の表の空いている文字コードに、カタカナを当てはめた"5035"という文字セットです。これによって半角カタカナと小文字は共存できるようになります。
そして、元々小文字を持ったセットに対してカタカナを追加したので「英小文字拡張」という呼び方をします。これの逆(カタカナが先で、後から空いた場所に小文字を追加した文字セットを「カナ拡張」と呼び、IDは"5026"になります。)
次回へ続く
英語小文字を追加したCCSID13219
空いた場所に半角カタカナを追加したCCSID5035

0 件のコメント:

コメントを投稿