マルチバイト文字
全角文字だよ
1バイトのデータでは表現できない(2バイト以上のデータで表現する)文字だよ
簡単に書くよ
マルチバイト文字(読:マルチバイトモジ 英:multibyte character)とは
全角文字のこと。
用語の中身としては
「あ」と同じくらいの幅の文字
('a'みたいに文字が1つだけある状態)のこと
です。
本当は
2バイト以上のデータで表現する(1バイトでは表現できない)文字のこと
ですけどね。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「文字」と「全角文字」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
文字は「あ」とか「い」とかです。
「わざわざ説明されなくても分かるよ」という人も多いでしょうけどね。
コンピュータの世界では「あ」や「い」のような「記号としての文字」と「眠い」や「お腹空いた」のような「言葉としての文字」を区別します。
そして
・記号としての文字 → 文字
・言葉としての文字 → 文字列
と呼び分けるのです。
まずは「記号としての文字」と「言葉としての文字」があると理解してください。
その上で、本ページで出てくるのは「記号としての文字」です。
コンピュータの世界で出てくる「記号としての文字」は2種類あります。
それは
1.「あ」と同じくらいの幅の文字
2.「a」と同じくらいの幅の文字
の2つです。
この2種類の文字のうち
1.「あ」と同じくらいの幅の文字
を「全角文字」と言います。
別に「あ」じゃなくて「ア」でも「1」でも「A」でも良いのですけどね。
日本語入力モードで入力した日本語くらいの幅の文字です。
以上を踏まえて
「全角文字」の別の呼び名
が「マルチバイト文字」です。
「全角文字」と「マルチバイト文字」は似たようなものだと思って かまいません。
……というのが正確ではないけどイメージしやすいであろう説明です。
本当は
2バイト以上で表現する文字(1バイトでは表現できない文字)
が「マルチバイト文字」です。
コンピュータの世界では0か1が入る箱を「ビット(bit)」と言います。
1ビットは0か1が入る箱が1個ある状態です。
この箱が8個集まると「バイト(Byte)」に変身します。
1バイトは0か1が入る箱が8個ある状態です。
1バイトで表現できる情報の数は256個です。
00000000
から始まって
00000001
00000010
00000011
00000100
00000101
と続き
111111111
に至ります。
この0と1の組み合わせの数が256個あるのです。
さて、コンピュータの世界では文字を数字として扱います。
実際の組み合わせとは違いますが、例えば
00000000:A
00000001:B
00000010:C
のように割り当ててあり、文字「A」をコンピュータさんの内部では「00000000」として扱うのです。
ここで ちょっとだけ歴史的な話をします。
コンピュータは最初、英語圏の人が作りました。
だから「文字」といえば英語です。
つまり「アルファベット」でした。
アルファベットと数字だけであれば、256個もあれば十分でしょう。
そこで、初期のコンピュータでは文字を1バイトのデータとして扱っていたのです。
ところがどっこい、コンピュータが世界的に広まると「日本語も使いたい!」「中国語も使いたい!」「アラビア語も使いたい!」と言い出す人が出てきました。
そうなると、文字に割り当てる数字が256個では足りなくなります。
足りなければ足せば良いのです。
1バイトで足りなければ2バイトにしましょう。
それまでは文字を1バイトのデータとして扱っていましたが、2バイトのデータとして扱うことにしました。
ついでなので書いておくと、今は2バイトでも足りなくなったので、3バイトとか4バイトで1文字を表現したりもします。
ということで、今のコンピュータ世界には
1.1バイトで表現できる文字
2.2バイト以上で表現する文字(1バイトでは表現できない文字)
の2種類あるのです。
この2種類のうち
2.2バイト以上で表現する文字(1バイトでは表現できない文字)
がマルチバイト文字です。
2バイト以上で表現する文字に分類されるのは、初期のコンピュータになかった文字です。
日本語圏であれば、ひらがなとかカタカナとか漢字とかですね。
よって、上の方ではマルチバイト文字を「全角文字だよ」と説明しました。
※本当は例外もありますが、ややこしいので今回は触れません。気になる人は他のところで勉強してください。
あと、ついでなので書いておくと
1.1バイトで表現できる文字
の方は「シングルバイト文字」と言います。
気が向いたら、併せて覚えてあげてください。
一言でまとめるよ
まぁ「マルチバイト文字」って単語が出てきたら「全角文字
(「あ」と同じくらいの幅の文字)のこと、もしくは、2バイト以上で表現する文字
('a'みたいに文字が1つだけある状態)のことなんだな~」と お考えください。
おまけ
■訳してみるよ
「multi(マルチ)」の意味は「複数の」とかです。
「byte(バイト)」はIT用語の「バイト」です。
「文字」は日本語ですね。
何となく くっつけると
複数バイトの文字
となります。
■検索してみる?






