😊

カタカナコード

2024/02/15に公開1

Unicodeの日本語でややこしいのは漢字(異体字とか)ですが、カタカナもそれなりです。ややこしい文字コードなんてないと言えば無いですが。種類として全角・半角とあり、◯文字があり、歴史的経緯の物があります。今回は必要に迫られてカタカナをあさったので、それのメモ書きです。

三行

  1. とりあえず Unicode 15.1 でのカタカナの正規表現は [\x{30A0}-\x{30FF}\x{31F0}-\x{31FF}\x{FF65}-\x{FF9F}\x{32D0}-\x{32FE}\x{3300}-\x{3357}\x{1B155}-\x{1B167}] という感じ。
  2. このカタカナの中にはアイヌ語で使うカタカナ、丸文字の㋐、㌀、半角カタカナのヲ、よくわからない特殊文字「𛄫」も入っている。
  3. \p{Katakana} としてないのは、「アーヲ」が通るのがちょっと困るシーンに出会ったため。

コード表

原典は Unicode.org: https://www.unicode.org/charts/

Katakana

  • 正規表現: \x{30A0}-\x{30FF}
  • 本当の小学校で学ぶカタカナだけのものを許す場合は \x{30A1}-\x{30FA} になります。
  • いずれにしても「ア゛」(アと゛)や「ア゙」(\x30A2\x3099)のようなものはマッチしません。

まずカタカナから見ます。コード的には「0x30A」から「0x30FF」となります。基本的にアイウエオと並んでおり、多いので、特徴ある部分だけをここに書いています。

Code 文字 名前 似た文字のコードと名前
30A0 Katakana-Hiragana DOUBLE HYPHEN 003D = equal sign, 2E40 ⹀ double hyphen
30A1 Katakana LETTER SMALL A
30A2 Katakana LETTER A
30FA KATAKANA LETTER VO ≡ 30F2 ヲ 3099 $゙
Code 文字 名前 似た文字のコードと名前
30FB KATAKANA MIDDLE DOT 00B7 · middle dot
30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK 2014 — em dash
30FD KATAKANA ITERATION MARK
30FE KATAKANA VOICED ITERATION MARK ≡ 30FD ヽ 3099 $゙
30FF KATAKANA DIGRAPH KOTO ≈ <vertical> 30B3 コ 30C8 ト

2つのテーブルに分けていますが、前半でやっかいなのが「30A0」です。後半の 30FB 〜 30FF は扱うかどうかは業務によって異なるので、扱いは任せます。個人的には含んで良いんじゃねと思って \x{30A0}-\x{30FF} という正規表現にしています。

Halfwidth Katakana variants

半角カタカナです。

  • 正規表現: \x{FF66}-\x{FF9D}
  • Middle Dot や濁点・半濁点を許可する時は \x{FF65}-\x{FF9F} になるが、ここにある濁点・半濁点のコードは合字用なので、あんまり許可しない方がいいかもしれない。
Code 文字 名前 似た文字のコードと名前
FF65 HALFWIDTH KATAKANA MIDDLE DOT ≈ <narrow> 30FB ・
FF66 HALFWIDTH KATAKANA LETTER WO ≈ <narrow> 30F2 ヲ
FF67 HALFWIDTH KATAKANA LETTER SMALL A ≈ <narrow> 30A1 ァ
FF9D HALFWIDTH KATAKANA LETTER N ≈ <narrow> 30F3 ン
FF9E HALFWIDTH KATAKANA VOICED SOUND MARK ≈ <narrow> 3099 $゙
FF9F HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK ≈ <narrow> 309A $゚

Katakana Phonetic Extensions

  • 正規表現 \x{31F0}-\x{31FF}

アイヌ語表記をするときに使うカタカナです。

Code 文字 名前
31F0 KATAKANA LETTER KU
31F1 KATAKANA LETTER SI
31F2 KATAKANA LETTER SU
31F3 KATAKANA LETTER TO
31F4 KATAKANA LETTER NU
31F5 KATAKANA LETTER HA
31F6 KATAKANA LETTER HI
31F7 KATAKANA LETTER HU
31F8 KATAKANA LETTER HE
31F9 KATAKANA LETTER HO
31FA KATAKANA LETTER MU
31FB KATAKANA LETTER RA
31FC KATAKANA LETTER RI
31FD KATAKANA LETTER RU
31FE KATAKANA LETTER RE
31FF KATAKANA LETTER RO

Small Kana Extension

  • 正規表現 \x{1B155}\x{1B164}-\x{1B167}

よくわからないですが、小さいコ「𛄫」とかあるみたいです。わりと欠番が多い所なので、そこいらは飛ばしています。

Code 文字 名前
1B155 𛄫 KATAKANA LETTER SMALL KO
1B164 𛄬 KATAKANA LETTER SMALL WI
1B165 𛄭 KATAKANA LETTER SMALL WE
1B166 𛄮 KATAKANA LETTER SMALL WO
1B167 𛄯 KATAKANA LETTER SMALL N

Circled Katakana

丸文字のカタカナです。この部分は歴史的都合によりハングル文字部分と入り乱れていますが、カタカナに関しては一定の範囲で指定されています。多いので先頭と末尾のみ。ちなみに 32FF は㋿です。

  • 正規表現 \x{32D0}-\x{32FE}
Code 文字 名前 似た文字のコードと名前
0x32d0 CIRCLED KATAKANA A ≈ <circle> 30A2 ア
0x32fe CIRCLED KATAKANA WO ≈ <circle> 30F2 ヲ

㌀ とかのこれ

なんていうんだっけ…?昔のワープロで使われていた文字です。確か。

  • 正規表現 \x{3300}-\x{3357}
Code 文字 名前 似た文字のコードと名前
3300 SQUARE APAATO ≈ <square> 30A2 ア 30D1 パ 30FC ー 30C8 ト
3357 SQUARE WATTO ≈ <square> 30EF ワ 30C3 ッ 30C8 ト

Kana Extended-B

私は見たことがないカタカナです。これ閩南語でフリガナのカタカナに付与する時に使っていたそうです。

  • 手間省いてます。正規表現 \x{1AFF0}-\x{1AFFF}
Code 文字 名前
1AFF0 𚿰 KATAKANA LETTER MINNAN TONE-2
1AFF1 𚿱 KATAKANA LETTER MINNAN TONE-3
1AFF2 𚿲 KATAKANA LETTER MINNAN TONE-4
1AFF3 𚿳 KATAKANA LETTER MINNAN TONE-5
1AFF4 " <reserved>
1AFF5 𚿵 KATAKANA LETTER MINNAN TONE-7
1AFF6 𚿶 KATAKANA LETTER MINNAN TONE-8
1AFF7 𚿷 KATAKANA LETTER MINNAN NASALIZED TONE-1
1AFF8 𚿸 KATAKANA LETTER MINNAN NASALIZED TONE-2
1AFF9 𚿹 KATAKANA LETTER MINNAN NASALIZED TONE-3
1AFFA 𚿺 KATAKANA LETTER MINNAN NASALIZED TONE-4
1AFFB 𚿻 KATAKANA LETTER MINNAN NASALIZED TONE-5
1AFFC " <reserved>
1AFFD 𚿽 KATAKANA LETTER MINNAN NASALIZED TONE-7
1AFFE 𚿾 KATAKANA LETTER MINNAN NASALIZED TONE-8
1AFFF " <reserved>

Discussion

at yasuat yasu

Memo: Windows および Linux では Unicode のバイトコードを打ち込んで、特殊文字を入力することが可能っぽい。未確認。

Windows で打ち込む

1F600 を打ち込む時は下記の手順

  1. 【ALT】を押し込む
  2. 【+】キーを押す
  3. 【1】【f】【6】【0】【0】を押す
  4. 【ALT】を離す

Linux で打ち込む

GTK / QT での話。VisualStudioCode , GoogleChrome でも動くらしい。

  1. 【左Ctrl】【左Shift】を押し込む
  2. 【U】キーを押す
  3. 【1】【f】【6】【0】【0】を押す
  4. 【左Ctrl】【左Shift】を離す