概要
世の中にはどうしたわけか、紛らわしい字形の文字がうんざりするぐらいあります。
というわけで、それの一覧と、各種変換でどう処理されるかをメモにしてみました。
ちなみに、NKF.nkf('-m0Z1 -Ww')で変化するものおよび変化後の文字は太字にしました。
(つまりクソッタレなことに殆どの文字は変化しない)
「横棒」
普通の横棒
記号 | UTF-8 | 名称 | 説明 | NKF.nkf('-m0Z1 -Ww') |
---|---|---|---|---|
- | U+002D | HYPHEN-MINUS | 半角ハイフンマイナス | U+002D |
_ | U+005F | LOW LINE | アンダーバー | U+005F |
U+00AD | SOFT HYPHEN | ソフトハイフン | U+00AD | |
̵ | U+0335 | COMBINING SHORT STROKE OVERLAY | ? | U+0335 |
̶ | U+0336 | COMBINING LONG STROKE OVERLAY | ? | U+0336 |
֊ | U+058A | ARMENIAN HYPHEN | アメリカンハイフン | U+058A |
־ | U+05BE | HEBREW PUNCTUATION MAQAF | ヘブライ語のマカフ(句読点) | U+05BE |
᠆ | U+1806 | MONGOLIAN TODO SOFT HYPHEN | モンゴル語のソフトハイフン | U+1806 |
᠊ | U+180A | MONGOLIAN NIRUGU | モンゴル語のニルグ(?) | U+180A |
‐ | U+2010 | HYPHEN | 全角ハイフン | U+2010 |
‑ | U+2011 | NON-BREAKING HYPHEN | 分割禁止ハイフン | U+2011 |
‒ | U+2012 | FIGURE DASH | 数字幅のダッシュ | U+2012 |
– | U+2013 | EN DASH | 数の範囲を示すためのダッシュ | U+2013 |
— | U+2014 | EM DASH | 時間の経過などを示すためのダッシュ | U+002D |
― | U+2015 | HORIZONTAL BAR | 引用などを示すためのダッシュ | U+002D |
⁻ | U+207B | SUPERSCRIPT MINUS | 上付きマイナス | U+207B |
₋ | U+208B | SUBSCRIPT MINUS' | 下付きマイナス | U+208B |
⁃ | U+2043 | HYPHEN BULLET | 箇条書きの先頭記号(ハイフン型) | U+2043 |
− | U+2212 | MINUS SIGN | 全角マイナス | U+002D |
─ | U+2500 | BOX DRAWINGS LIGHT HORIZONTAL | 細い罫線 | U+2500 |
━ | U+2501 | BOX DRAWINGS HEAVY HORIZONTAL | 太い罫線 | U+2501 |
➖ | U+2796 | HEAVY MINUS SIGN | ? | U+2796 |
⸺ | U+2E3A | TWO-EM DASH | EM DASHの2倍幅 | U+2E3A |
⸻ | U+2E3B | THREE-EM DASH | EM DASHの3倍幅 | U+2E3B |
ー | U+30FC | KATAKANA-HIRAGANA PROLONGED SOUND MARK | 全角長音 | U+30FC |
ㄧ | U+3127 | BOPOMOFO LETTER I | 注音符号のiの発音 | U+3127 |
ㅡ | U+3161 | HANGUL LETTER EU | ハングルの「う」 | U+3161 |
一 | U+4E00 | CJK IDEOGRAPH FIRST | 漢数字の「いち」(1) | U+4E00 |
﹘ | U+FE58 | SMALL EM DASH | ? | U+FE58 |
﹣ | U+FE63 | SMALL HYPHEN-MINUS | ? | U+FE63 |
- | U+FF0D | FULLWIDTH HYPHEN-MINUS | 全角ハイフンマイナス | U+002D |
ー | U+FF70 | HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK | 半角長音 | U+30FC |
| U+E002D | TAG HYPHEN-MINUS | ? | ? |
上付き棒および下付き棒
記号 | UTF-8 | 名称 | 説明 | NKF.nkf('-m0Z1 -Ww') |
---|---|---|---|---|
¯ | U+00AF | MACRON | 長音符号 | U+00AF |
‾ | U+203E | OVERLINE | 半角オーバーライン | U+203E |
 ̄ | U+FFE3 | FULLWIDTH MACRON | 全角オーバーライン | U+203E |
_ | U+005F | LOW LINE | 半角アンダーバー | U+005F |
ˍ | U+02CD | MODIFIER LETTER LOW MACRON | ? | U+02CD |
̠A | U+0320 | COMBINING MINUS SIGN BELOW | 合字用 | U+0320 |
̱A | U+0331 | COMBINING MACRON BELOW | 合字用 | U+0331 |
̲A | U+0332 | COMBINING LOW LINE | 合字用 | U+0332 |
A | U+0333 | COMBINING DOUBLE LOW LINE | 合字用 | U+0333 |
͇A | U+0347 | COMBINING EQUALS SIGN BELOW | 合字用 | U+0347 |
‗ | U+2017 | DOUBLE LOW LINE | ? | U+2017 |
_ | U+FF3F | FULLWIDTH LOW LINE | 全角アンダーバー | U+005F |
「縦棒」
記号 | UTF-8 | 名称 | 説明 | NKF.nkf('-m0Z1 -Ww') |
---|---|---|---|---|
1 | U+0031 | DIGIT ONE | 半角数字のイチ | U+0031 |
I | U+0049 | LATIN CAPITAL LETTER I | 半角大文字のアイ | U+0049 |
l | U+006C | LATIN SMALL LETTER L | 半角小文字のエル | U+006C |
U+007C | VERTICAL LINE | 半角のパイプ | U+007C | |
│ | U+2502 | BOX DRAWINGS LIGHT VERTICAL | 罫線の細縦棒 | U+2502 |
┃ | U+2503 | BOX DRAWINGS HEAVY VERTICAL | 罫線の太縦棒 | U+2503 |
︱ | U+FE31 | PRESENTATION FORM FOR VERTICAL EM DASH | ? | U+FE31 |
︲ | U+FE32 | PRESENTATION FORM FOR VERTICAL EN DASH | ? | U+FE32 |
1 | U+FF11 | FULLWIDTH DIGIT ONE | 全角数字のイチ | U+0031 |
I | U+FF29 | FULLWIDTH LATIN CAPITAL LETTER I | 全角大文字のアイ | U+0049 |
l | U+FF4C | FULLWIDTH LATIN SMALL LETTER L | 全角小文字のエル | U+006C |
| | U+FF5C | FULLWIDTH VERTICAL LINE | 全角のパイプ | U+007C |
「空白」
記号 | UTF-8 | 名称 | 説明 | NKF.nkf('-m0Z1 -Ww') |
---|---|---|---|---|
U+0009 | CHARACTER TABULATION | 水平タブ (HT) | U+0009 | |
U+0020 | SPACE | 半角スペース | U+0020 | |
U+00A0 | NO-BREAK SPACE | ノーブレークスペース | U+00A0 | |
ᆣ | U+11A3 | HANGUL JUNGSEONG A-EU | ハングルの古い中声母音の一つ | U+11A3 |
ᆤ | U+11A4 | HANGUL JUNGSEONG YA-U | ハングルの古い中声母音の一つ | U+11A4 |
ᆥ | U+11A5 | HANGUL JUNGSEONG YEO-YA | ハングルの古い中声母音の一つ | U+11A5 |
ᆦ | U+11A6 | HANGUL JUNGSEONG O-YA | ハングルの古い中声母音の一つ | U+11A6 |
ᆧ | U+11A7 | HANGUL JUNGSEONG O-YAE | ハングルの古い中声母音の一つ | U+11A7 |
U+1680 | OGHAM SPACE MARK | オガム文字の句読点 | U+1680 | |
| U+180E | MONGOLIAN VOWEL SEPARATOR | ? | |
U+2000 | EN QUAD | n幅四角形 | U+2000 | |
U+2001 | EM QUAD | m幅四角形 | U+2001 | |
U+2002 | EN SPACE | n幅空白 | U+2002 | |
U+2003 | EM SPACE | m幅空白 | U+2003 | |
U+2004 | THREE-PER-EM SPACE | (1/3)m幅空白 | U+2004 | |
U+2005 | FOUR-PER-EM SPACE | (1/4)m幅空白 | U+2005 | |
U+2006 | SIX-PER-EM SPACE | (1/6)m幅空白 | U+2006 | |
U+2007 | FIGURE SPACE | 数字用空白 | U+2007 | |
U+2008 | PUNCTUATION SPACE | 句読点用空白 | U+2008 | |
U+2009 | THIN SPACE | 小幅空白 | U+2009 | |
U+200A | HAIR SPACE | 超小幅空白 | U+200A | |
| U+200B | ZERO WIDTH SPACE | ゼロ幅空白 | |
U+202F | NARROW NO-BREAK SPACE | 小幅ノーブレークスペース | U+202F | |
U+205F | MEDIUM MATHEMATICAL SPACE | 中幅数学用空白 | U+205F | |
| U+2060 | WORD JOINER | ワード接合子 | U+2060 |
U+3000 | IDEOGRAPHIC SPACE | 全角スペース | U+0020 | |
ㅤ | U+3164 | HANGUL FILLER | ? | U+3164 |
| U+FEFF | ZERO WIDTH NO-BREAK SPACE | ゼロ幅ノーブレークスペース |
#「点」
中点
記号 | UTF-8 | 名称 | 説明 | NKF.nkf('-m0Z1 -Ww') |
---|---|---|---|---|
· | U+00B7 | MIDDLE DOT | 中点(ラテン) | U+00B7 |
· | U+0387 | GREEK ANO TELEIA | ギリシャ語セミコロン | U+0387 |
ᐧ | U+1427 | CANADIAN SYLLABICS FINAL MIDDLE DOT | カナダ先住民用の音節記号 | U+1427 |
᠂ | U+1802 | MONGOLIAN COMMA | モンゴル語のコンマ | U+1802 |
ᣟ | U+18DF | CANADIAN SYLLABICS FINAL RAISED DOT | クリー語およびオジブウェー語用語末 | U+18DF |
• | U+2022 | BULLET | ビュレット | U+2022 |
∙ | U+2219 | BULLET OPERATOR | ビュレット演算子 | U+2219 |
⋅ | U+22C5 | DOT OPERATOR | ドット演算子 | U+22C5 |
⠂ | U+2802 | BRAILLE PATTERN DOTS-2 | 点字のドット(左の上から2番め) | U+2802 |
⠄ | U+2804 | BRAILLE PATTERN DOTS-3 | 点字のドット(左の上から3番め) | U+2804 |
⠐ | U+2810 | BRAILLE PATTERN DOTS-5 | 点字のドット(右の上から2番め) | U+2810 |
⠠ | U+2820 | BRAILLE PATTERN DOTS-6 | 点字のドット(右の上から3番め) | U+2820 |
⸱ | U+2E31 | WORD SEPARATOR MIDDLE DOT | ? | U+2E31 |
⸳ | U+2E33 | RAISED DOT | ? | U+2E33 |
〮 | U+302E | HANGUL SINGLE DOT TONE MARK | 古ハングルの声調記号 | U+302E |
・ | U+30FB | KATAKANA MIDDLE DOT | 全角中点 | U+30FB |
・ | U+FF65 | HALFWIDTH KATAKANA MIDDLE DOT | 半角中点 | U+30FB |
上付き点および下付き点および3点
記号 | UTF-8 | 名称 | 説明 | NKF.nkf('-m0Z1 -Ww') |
---|---|---|---|---|
˙ | U+02D9 | DOT ABOVE | ラテン文字の上につけるドット | U+02D9 |
̇ | U+0307 | COMBINING DOT ABOVE | ラテン文字の上につけるドット | U+0307 |
͘ | U+0358 | COMBINING DOT ABOVE RIGHT | ラテン文字の上につけるドット | U+0358 |
ॱ | U+0971 | DEVANAGARI SIGN HIGH SPACING DOT | デーヴァナーガリー文字の一つ | U+0971 |
⠁ | U+2801 | BRAILLE PATTERN DOTS-1 | 点字のドット(左上) | U+2801 |
⠈ | U+2808 | BRAILLE PATTERN DOTS-4 | 点字のドット(右上) | U+2808 |
﮲ | U+FBB2 | ARABIC SYMBOL DOT ABOVE | アラビア文字の上につけるドット | U+FBB2 |
. | U+002E | FULL STOP | 半角ピリオド | U+002E |
̣ | U+0323 | COMBINING DOT BELOW | ラテン文字の下につけるドット | U+0323 |
․ | U+2024 | ONE DOT LEADER | ? | U+2024 |
⡀ | U+2840 | BRAILLE PATTERN DOTS-7 | 点字のドット(左下) | U+2840 |
⢀ | U+2880 | BRAILLE PATTERN DOTS-8 | 点字のドット(右下) | U+2880 |
﮳ | U+FBB3 | ARABIC SYMBOL DOT BELOW | アラビア文字の下につけるドット | U+FBB3 |
. | U+FF0E | FULLWIDTH FULL STOP | 全角ピリオド | U+002E |
… | U+2026 | HORIZONTAL ELLIPSIS | 3点リーダ | U+2026 |
⋯ | U+22EF | MIDLINE HORIZONTAL ELLIPSIS | ? | U+22EF |
「その他」
記号 | UTF-8 | 名称 | 説明 | NKF.nkf('-m0Z1 -Ww') |
---|---|---|---|---|
= | U+003D | EQUALS SIGN | 半角のイコール | U+003D |
= | U+FF1D | FULLWIDTH EQUALS SIGN | 全角のイコール | U+003D |
᐀ | U+1400 | CANADIAN SYLLABICS HYPHEN | ? | U+1400 |
⸗ | U+2E17 | DOUBLE OBLIQUE HYPHEN | ? | U+2E17 |
⹀ | U+2E40 | DOUBLE HYPHEN | ? | U+2E40 |
゠ | U+30A0 | KATAKANA-HIRAGANA DOUBLE HYPHEN | ? | U+30A0 |
~ | U+007E | TILDE | 半角のチルダ | U+007E |
~ | U+FF5E | FULLWIDTH TILDE | 全角のチルダ | U+FF5E |
〜 | U+301C | WAVE DASH | 波ダッシュ(本家) | U+301C |
⁓ | U+2053 | SWUNG DASH | ? | U+2053 |
〰 | U+3030 | WAVY DASH | ? | U+3030 |
∼ | U+223C | TILDE OPERATOR | チルダ演算子(NOT演算子) | U+223C |
∾ | U+223E | INVERTED LAZY S | 「エス」を寝かせたもの | U+223E |
/ | U+002F | SOLIDUS | 半角のスラッシュ | U+002F |
/ | U+FF0F | FULLWIDTH SOLIDUS | 全角のスラッシュ | U+002F |
∕ | U+2215 | DIVISION SLASH | 割り算用のスラッシュ? | U+2215 |
⁄ | U+2044 | FRACTION SLASH | 分数用のスラッシュ? | U+2044 |
|U+005C | REVERSE SOLIDUS | 半角のバックスラッシュ | U+005C | |
\ | U+FF3C | FULLWIDTH REVERSE SOLIDUS | 全角のバックスラッシュ | U+005C |
∖ | U+2216 | SET MINUS | ? | U+2216 |
¥ | U+00A5 | YEN SIGN | 半角の円マーク | U+00A5 |
¥ | U+FFE5 | FULLWIDTH YEN SIGN | 全角の円マーク | U+00A5 |
試したい人向けのRubyソース
(特にコマンドプロンプトだと盛大に文字化けしますのでご注意ください)
character.rb
require 'nkf'
def show(str)
puts str
puts str.codepoints.collect{|cp|sprintf("U+%04X", cp)}.join(", ")
puts NKF.nkf('-m0Z1 -Ww', str).codepoints.collect{|cp|sprintf("U+%04X", cp)}.join(", ")
end
puts '横棒'
str1 = "\u002D\u005F\u00AD\u0335\u0336\u058A\u05BE\u1806\u180A\u2010\u2011"
show(str1)
str1 = "\u2012\u2013\u2014\u2015\u207B\u208B\u2043\u2212\u2500\u2501\u2796"
show(str1)
str1 = "\u2E3A\u2E3B\u30FC\u3127\u3161\u4E00\uFE58\uFE63\uFF0D\uFF70"
show(str1) #U+E002Dをどう表現すればいいのか教えてくだち!
str1 = "\u00AF\u203E\uFFE3\u005F\u02CD\u0320\u0331\u0332\u0333\u0347\u2017\uFF3F"
show(str1)
puts '縦棒'
str2 = "\u0031\u0049\u006C\u007C\u2502\u2503\uFE31\uFE32\uFF11\uFF29\uFF4C\uFF5C"
show(str2)
puts '空白'
str3 = "\u0009\u0020\u00A0\u11A3\u11A4\u11A5\u11A6\u11A7\u1680\u180E\u2000\u2001\u2002\u2003"
show(str3)
str3 = "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u200B\u202F\u205F\u2060\u3000\u3164\uFEFF"
show(str3)
puts '点'
str4 = "\u00B7\u0387\u1427\u1802\u18DF\u2022\u2219\u22C5\u2802\u2804\u2810\u2820\u2E31\u2E33\u302E\u30FB\uFF65"
show(str4)
str4 = "\u02D9\u0307\u0358\u0971\u2801\u2808\uFBB2\u002E\u0323\u2024\u2840\u2880\uFBB3\uFF0E\u2026\u22EF"
show(str4)
puts 'その他'
str5 = "\u003D\uFF1D\u1400\u2E17\u2E40\u30A0\u007E\uFF5E\u301C\u2053\u3030"
show(str5)
str5 = "\u223C\u223E\u002F\uFF0F\u2215\u2044\u005C\uFF3C\u2216\u00A5\uFFE5"
show(str5)
=begin
横棒
-_̵̶֊־᠆᠊‐‑
U+002D, U+005F, U+00AD, U+0335, U+0336, U+058A, U+05BE, U+1806, U+180A, U+2010, U+2011
U+002D, U+005F, U+00AD, U+0335, U+0336, U+058A, U+05BE, U+1806, U+180A, U+2010, U+2011
‒–—―⁻₋⁃−─━➖
U+2012, U+2013, U+2014, U+2015, U+207B, U+208B, U+2043, U+2212, U+2500, U+2501, U+2796
U+2012, U+2013, U+002D, U+002D, U+207B, U+208B, U+2043, U+002D, U+2500, U+2501, U+2796
⸺⸻ーㄧㅡ一﹘﹣-ー
U+2E3A, U+2E3B, U+30FC, U+3127, U+3161, U+4E00, U+FE58, U+FE63, U+FF0D, U+FF70
U+2E3A, U+2E3B, U+30FC, U+3127, U+3161, U+4E00, U+FE58, U+FE63, U+002D, U+30FC
¯‾ ̄_ˍ̠̱̲̳͇‗_
U+00AF, U+203E, U+FFE3, U+005F, U+02CD, U+0320, U+0331, U+0332, U+0333, U+0347, U+2017, U+FF3F
U+00AF, U+203E, U+203E, U+005F, U+02CD, U+0320, U+0331, U+0332, U+0333, U+0347, U+2017, U+005F
縦棒
1Il|│┃︱︲1Il|
U+0031, U+0049, U+006C, U+007C, U+2502, U+2503, U+FE31, U+FE32, U+FF11, U+FF29, U+FF4C, U+FF5C
U+0031, U+0049, U+006C, U+007C, U+2502, U+2503, U+FE31, U+FE32, U+0031, U+0049, U+006C, U+007C
空白
ᆣᆤᆥᆦᆧ
U+0009, U+0020, U+00A0, U+11A3, U+11A4, U+11A5, U+11A6, U+11A7, U+1680, U+180E, U+2000, U+2001, U+2002, U+2003
U+0009, U+0020, U+00A0, U+11A3, U+11A4, U+11A5, U+11A6, U+11A7, U+1680, U+180E, U+2000, U+2001, U+2002, U+2003
ㅤ
U+2004, U+2005, U+2006, U+2007, U+2008, U+2009, U+200A, U+200B, U+202F, U+205F, U+2060, U+3000, U+3164, U+FEFF
U+2004, U+2005, U+2006, U+2007, U+2008, U+2009, U+200A, U+200B, U+202F, U+205F, U+2060, U+0020, U+3164, U+FEFF
点
··ᐧ᠂ᣟ•∙⋅⠂⠄⠐⠠⸱⸳〮・・
U+00B7, U+0387, U+1427, U+1802, U+18DF, U+2022, U+2219, U+22C5, U+2802, U+2804, U+2810, U+2820, U+2E31, U+2E33, U+302E, U+30FB, U+FF65
U+00B7, U+0387, U+1427, U+1802, U+18DF, U+2022, U+2219, U+22C5, U+2802, U+2804, U+2810, U+2820, U+2E31, U+2E33, U+302E, U+30FB, U+30FB
˙̇͘ॱ⠁⠈﮲.̣․⡀⢀﮳.…⋯
U+02D9, U+0307, U+0358, U+0971, U+2801, U+2808, U+FBB2, U+002E, U+0323, U+2024, U+2840, U+2880, U+FBB3, U+FF0E, U+2026, U+22EF
U+02D9, U+0307, U+0358, U+0971, U+2801, U+2808, U+FBB2, U+002E, U+0323, U+2024, U+2840, U+2880, U+FBB3, U+002E, U+2026, U+22EF
その他
==᐀⸗⹀゠~~〜⁓〰
U+003D, U+FF1D, U+1400, U+2E17, U+2E40, U+30A0, U+007E, U+FF5E, U+301C, U+2053, U+3030
U+003D, U+003D, U+1400, U+2E17, U+2E40, U+30A0, U+007E, U+FF5E, U+301C, U+2053, U+3030
∼∾//∕⁄\\∖¥¥
U+223C, U+223E, U+002F, U+FF0F, U+2215, U+2044, U+005C, U+FF3C, U+2216, U+00A5, U+FFE5
U+223C, U+223E, U+002F, U+002F, U+2215, U+2044, U+005C, U+005C, U+2216, U+00A5, U+00A5
=end
参考資料
これと戦ってる(白目 - Twitter
Unicode Characters in the 'Punctuation, Dash' Category
Unicodeの文字まとめ
波ダッシュ、全角チルダ問題まとめ
全角チルダ問題
ハイフンとダッシュ (HYPYEN and DASH)
文字列正規化(UnicodeNormalizer)
ハイフンとかダッシュとかUnicodeにあるたくさんの横線(全135文字)