Unicodeブロック一覧(ひらがな・カタカナ・漢字の範囲)

ひらがな U+3040〜309F、カタカナ U+30A0〜30FF、CJK統合漢字 U+4E00〜9FFF など約50ブロックの範囲を一覧表示。ブロックごとの文字グリッド、正規表現の範囲指定例、入力した文字の所属ブロック判定つき。

文字コードポイントブロック範囲
範囲ブロック名文字数

灰色のマスは、お使いのブラウザの Unicode データで未割り当て、または表示できない文字(制御・空白・サロゲート・私用領域)です。

ひらがなの範囲は U+3040 から、で合っているのか。 正規表現で漢字だけ拾いたいのに、「々」や「𠮷」が抜け落ちる。 Unicode の表を探しても、巨大すぎて目当てのブロックにたどり着けない。 主要な約50ブロックの範囲を一覧にして、選んだブロックの文字を並べ、そのまま使える正規表現の範囲指定も出します。文字を入れると、どのブロックに属するかも分かります。

使い方

  1. いちばん上の欄に文字を入れると、1文字ずつコードポイントと所属ブロックが表に出ます。初期値の「あア漢Aー😀」で、ブロックがばらけるのが分かります。
  2. ブロック一覧は、名前(Hiragana、kana など)、日本語名、16進の数字(3040 など)で絞り込めます。数字は、その値を含むブロックを探します。
  3. 行の「表示」を押すと、下の文字グリッドが切り替わります。256字ずつのページ送りです。

ここまでが調べ物の流れです。

  1. グリッドのマスを押すと、UTF-8、UTF-16、JavaScript の書き方(あ など)、HTML の数値参照、一般カテゴリが出ます。
  2. 一番下に、そのブロックの正規表現がコピーボタン付きで並びます。

灰色のマスは、未割り当ての番号か、表示できない文字(制御文字、空白、サロゲート、私用領域)です。結合文字は点線の丸付きで出ます。

仕組み・計算式

ブロックの範囲は、Unicode Consortium が公開している Blocks.txt の定義に合わせています。各ブロックは16の倍数から始まり、16の倍数の手前(末尾が F)で終わります。画面の一覧の全54ブロックが、並び順と、この境界の規則を満たすことを確かめました。

UTF-16 は、RFC 2781 に定められた方式です。U+FFFF までの文字は16ビット1つで表します。U+10000 以上は、コードポイントから 0x10000 を引き、上位10ビットを D800 に、下位10ビットを DC00 に足してサロゲートペアにします。たとえば U+1F600 は D83D DE00 です。

なお一覧は主要なブロックだけです。Blocks.txt にはもっと多くのブロックがありますが、検索でよく見かけるものを優先しました。一覧にない文字を入れると「この一覧にないブロック」と表示します。

「未割り当て」かどうかは、お使いのブラウザが持つ Unicode のデータで判定しています。ブラウザが古いと、新しい文字がまだ未割り当てに見えることがあります。

計算例

数字は、script.js の関数と JavaScript の正規表現を node で実行して確かめました。

例1: ひらがなの範囲

ひらがなブロックは U+3040〜U+309F の96コードポイントです。/^[぀-ゟ]+$/ は「ひらがな」に一致します。ところが「らーめん」には一致しませんでした。意外だったのは理由で、長音の「ー」が U+30FC で、カタカナブロックにあることでした。ひらがなの文章に「ー」が混ざるのは普通ですよね。ー を足した /^[぀-ゟー]+$/ なら一致します。

例2: 漢字の範囲

CJK統合漢字は U+4E00〜U+9FFF の20,992字で、グリッドは82ページになります。/[一-鿿]/ に「々」は一致しません。「々」は U+3005 で、CJKの記号及び句読点のブロックだからです。

例3(境界値): U+309F と U+30A0

ひらがなブロックの最後は U+309F「ゟ」、次の U+30A0「゠」からカタカナブロックです。境界が1違いで、見た目の印象とずれます。ひらがなブロックの先頭 U+3040 と、U+3097、U+3098 は、手元の node(Unicode 17 のデータ)では未割り当てでした。つまり、このブロックに実際にあるのは96字のうち93字です。

例4: BMP の外

「𠮷」は U+20BB7 で、CJK統合漢字拡張Bに入ります。/[一-鿿]/ には一致せず、.length も2になります。/[\u{4E00}-\u{9FFF}\u{20000}-\u{2A6DF}]/u なら一致しました。

よくある間違い

1. ブロックの範囲と文字の種類を同じものだと考える

「々」や「ー」のように、ブロックと用途がずれる文字があります。ひらがなだけを判定したいなら、ブロックの範囲よりも、実際に使う文字を洗い出して決めるほうが確実です。

試して分かったのは、JavaScript の \p{Script=Hiragana} でも「ー」は一致しないことでした。\p{Script_Extensions=Hiragana} なら一致します。なお JavaScript の \p{} では、Script や一般カテゴリは使えても、ブロック名(\p{Block=Hiragana})は使えず、node ではエラーになりました。

2. u フラグなしで BMP の外を指定する

[\u{20000}-\u{2A6DF}] を u フラグなしで正規表現にすると、node では「Range out of order」のエラーになりました。BMP の外を指定するときは、u フラグを付けてください。

3. 全角と半角を同じブロックだと思う

「ア」は U+FF71、「A」は U+FF21 で、どちらも「半角・全角形」ブロックです。「ア」(U+30A2) のカタカナブロックとは別の場所にあります。「〜」(U+301C) と「~」(U+FF5E) も別のブロックなので、文字化けや照合のずれの原因になります。

よくある質問

Q. 絵文字は1つのブロックにまとまっていますか?

A. まとまっていません。入力欄に「😀」を入れると顔文字ブロック(U+1F600〜U+1F64F)でしたが、「☀」はその他の記号(U+2600)、「❤」は装飾記号(U+2764)に入りました。絵文字を一括で判定するなら、ブロックではなく Emoji の属性を使うほうが向いています。

Q. 一覧にないブロックは調べられますか?

A. このツールでは調べられません。判定欄では「この一覧にないブロック」と出ます。

Q. 範囲の末尾まで文字があるのですか?

A. 全部にあるとは限りません。たとえばひらがなブロックには、未割り当てが3つあります。グリッドの灰色のマスが目印です。

Q. グリッドの文字が□や空白になります。

A. ブラウザやOSにその文字のフォントがないためです。コードポイントの情報(UTF-8、UTF-16)は、マスを押せば確認できます。

関連ツール

最終更新・根拠の確認日: 2026-10-12 · カテゴリ: テキスト