全角・半角とは何か:見た目と文字コードの違い

入門 | 10分 で読める | 2026.06.17

公式ドキュメント

全角・半角とは、もともと文字の表示幅に由来する言い方です。ただし、プログラムでは見た目だけでなく、Unicode上の文字範囲として考える必要があります。

一言でいうと

全角・半角は見た目の幅だけで判断せず、どのUnicode範囲の文字を許可するかで定義します。

よくある文字の種類

種類Unicode範囲の目安
ASCII印字可能文字A, 0, !U+0020〜U+007E
全角英数字, U+FF01〜U+FF5E付近
ひらがなU+3040〜U+309F
カタカナU+30A0〜U+30FF
半角カタカナ, , U+FF61〜U+FF9F

同じように見える文字でも、半角の A と全角の は別の文字です。

ASCII印字可能文字

半角英数字や基本的な記号は、ASCII印字可能文字として扱うことが多いです。

U+0020  空白
U+0021  !
U+0030  0
U+0041  A
U+007E  ~

JavaScriptでは次のように範囲判定できます。

function isPrintableAscii(char) {
  const code = char.charCodeAt(0);
  return code >= 0x20 && code <= 0x7e;
}

半角カタカナ

半角カタカナは、Unicodeでは U+FF61〜U+FF9F にあります。

function isHalfwidthKatakana(char) {
  const code = char.charCodeAt(0);
  return code >= 0xff61 && code <= 0xff9f;
}

半角カタカナは \xA1-\xDF ではなく、Unicodeでは \uFF61-\uFF9F の範囲です。

「全角判定」は定義が難しい

「全角」と言っても、何を含めるかは用途によって変わります。

判定したいもの考える範囲
日本語を含むかひらがな、カタカナ、漢字
ASCII以外を含むかU+0020〜U+007E以外
半角カタカナも半角扱いしたいU+FF61〜U+FF9Fを許可
表示幅で判定したいEast Asian Widthの考え方が必要

フォームの入力制限では、まず「何を許可したいのか」を言語化します。

よくある誤解

誤解実際
ASCII以外は全部全角半角カタカナや記号など例外があります
見た目が半角なら同じ文字コードポイントが違う場合があります
全角・半角は世界共通の厳密分類用途や仕様によって定義が変わります
正規表現の短い範囲指定で十分Unicode範囲を確認する必要があります

まとめ

全角・半角は、見た目の幅だけでなくUnicode上の範囲として扱います。ASCII印字可能文字は U+0020〜U+007E、半角カタカナは U+FF61〜U+FF9F です。入力チェックでは、まず許可したい文字範囲を明確にします。

参考リソース

← 一覧に戻る
PR
PR
PR
PR