【ぜんかく/はんかく】

全角/半角 とは?

💡 見た目は似てるけど、コンピュータには別モノ
📌 このページのポイント
全角と半角の違い 全角(ぜんかく) 1文字が正方形のスペース 幅が広い(2バイト文字) 日本語入力モードで入力 プログラミングでは要注意! 半角(はんかく) 1文字が半分の幅 A 1 a @ ! 幅が狭い(1バイト文字) 英数字入力モードで入力 プログラミングはこちらを使う A B C → 全角 vs ABC → 半角 見た目は似ているが、コンピュータ上では別の文字
全角と半角の文字幅の違い
ひよこ ひよこ

フォームに電話番号を入れたらエラーになったんだけど、何が悪いんだ

ペンギン先生 ペンギン先生

全角の数字で入力してない確認してみて。「0123」じゃなくて「0123」の半角数字で入れる必要があるんだよ

ひよこ ひよこ

見た目ほとんど同じなのに、そんなに違うものなのかな

ペンギン先生 ペンギン先生

人間には似て見えるけど、コンピュータにとっては全角と半角は完全に別の文字なんだよ。だから入力時には気をつける必要があるんだね

ひよこ ひよこ

全角スペースっていうのもあるんだよね

ペンギン先生 ペンギン先生

そうだよ。全角スペースは見えにくいのに悪さをすることが多くて、プログラムURLに混ざるとエラーの原因になるんだよ

ひよこ ひよこ

プログラマーとして全角半角で気をつけるべきことって他にもあるの?

ペンギン先生 ペンギン先生

CSVファイルで全角カンマ(,)が混じっているとフィールドの区切りがずれたり、正規表現全角文字を考慮していなくてバリデーションが通り抜けたりするケースがあるよ。データベースでも全角半角の混在があると検索でヒットしない問題が起きるんだ

ひよこ ひよこ

ユーザーが全角で入力しても自動で半角に直してくれるようにできないの?

ペンギン先生 ペンギン先生

できるよ。入力フォームでJavaScriptの変換処理を入れたり、サーバーサイドでNFKC正規化を行ったりするのが一般的だね。ただし住所の「丁目」や氏名の「=」など、全角のままにすべき場合もあるから、何を変換して何を残すかのルールを明確にしておくのが大事だよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「全角/半角」って出てきたら「文字の幅の違いで、入力時に気をつけるやつだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Fullwidth / Halfwidth」 = 全幅 / 半幅
💬 活字の時代に1文字分の幅を「全角」、その半分を「半角」と呼んだのが由来だよ
← 用語集にもどる