😊
カタカナコード
Unicodeの日本語でややこしいのは漢字(異体字とか)ですが、カタカナもそれなりです。ややこしい文字コードなんてないと言えば無いですが。種類として全角・半角とあり、◯文字があり、歴史的経緯の物があります。今回は必要に迫られてカタカナをあさったので、それのメモ書きです。
三行
- とりあえず 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}]という感じ。 - このカタカナの中にはアイヌ語で使うカタカナ、丸文字の㋐、㌀、半角カタカナのヲ、よくわからない特殊文字「」も入っている。
-
\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
Memo: Windows および Linux では Unicode のバイトコードを打ち込んで、特殊文字を入力することが可能っぽい。未確認。
Windows で打ち込む
1F600を打ち込む時は下記の手順Linux で打ち込む
GTK / QT での話。VisualStudioCode , GoogleChrome でも動くらしい。