Help us understand the problem. What is going on with this article?

紛らわしい記号総まとめ+Rubyでどう変換されるかのメモ

More than 3 years have passed since last update.

概要

 世の中にはどうしたわけか、紛らわしい字形の文字がうんざりするぐらいあります
 というわけで、それの一覧と、各種変換でどう処理されるかをメモにしてみました。
 ちなみに、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
U+FF11 FULLWIDTH DIGIT ONE 全角数字のイチ U+0031
U+FF29 FULLWIDTH LATIN CAPITAL LETTER I 全角大文字のアイ U+0049
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

Wandboxでの実行結果

参考資料

これと戦ってる(白目 - Twitter
Unicode Characters in the 'Punctuation, Dash' Category
Unicodeの文字まとめ
波ダッシュ、全角チルダ問題まとめ
全角チルダ問題
ハイフンとダッシュ (HYPYEN and DASH)
文字列正規化(UnicodeNormalizer)
ハイフンとかダッシュとかUnicodeにあるたくさんの横線(全135文字)

YSRKEN
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした