作成日:2022-05-12, 更新日:2022-05-13
似た文字
文字 | 出力したunicode | 置き換えるときに使うunicode | unicode | 内容 |
---|---|---|---|---|
- | - | \u002d | U+002D | Hyphen-Minus: よく使われる普通の半角ハイフンマイナス |
﹣ | ﹣ | \ufe63 | U+FE63 | 小さいハイフンマイナス。NFKD/NFKC正規化で U+002D |
- | - | \uff0d | U+FF0D | 全角ハイフンマイナス。NFKD/NFKC正規化で U+002D |
ハイフン | ||||
| ­ | \u00ad | U+00AD | Soft Hyphen: ソフトハイフン |
‐ | ‐ | \u2010 | U+2010 | Hyphen: U+002Dとは別の普通のハイフン |
‑ | ‑ | \u2011 | U+2011 | Non-Breaking Hyphen: 折り返しをしないハイフン。NFKD/NFKC正規化でU+2010になる |
⁃ | ⁃ | \u2043 | U+2043 | Hyphen Bullet: ビュレットとして使うハイフン(ビューレットとは箇条書きの先頭につける記号) |
マイナス | ||||
˗ | ˗ | \u02d7 | U+02D7 | Modifier Letter Minus Sign |
− | − | \u2212 | U+2212 | Minus Sign: U+002Dとは別の普通のマイナス |
⧿ | ⧿ | \u29ff | U+29FF | Miny: (本当にマイナスなのかどうか詳細不明) |
➖ | ➖ | \u2796 | U+2796 | Heavy Minus Sign: 太いマイナス記号 |
ダッシュ | ||||
‒ | ‒ | \u2012 | U+2012 | Figure Dash |
– | – | \u2013 | U+2013 | En Dash: “n”と同じ横幅のダッシュ |
— | — | \u2014 | U+2014 | Em Dash: “m”と同じ横幅のダッシュ |
― | ― | \u2015 | U+2015 | Horizontal Bar: クォーテーションダッシュ |
⸺ | ⸺ | \u2e3a | U+2E3A | Two-Em Dash: “m”の2倍の横幅のダッシュ |
⸻ | ⸻ | \u2e3b | U+2E3B | Three-Em Dash: “m”の3倍の横幅のダッシュ |
﹘ | ﹘ | \ufe58 | U+FE58 | Small Em Dash: NFKD/NFKC正規化でU+2014になる |
その他横線 | ||||
⎯ | ⎯ | \u23af | U+23AF | Horizontal Line Extension |
⏤ | ⏤ | \u23e4 | U+23E4 | Straightness: 直線を表す技術的な記号(として本当に使われるのか不明) |
⚊ | ⚊ | \u268a | U+268A | Monogram for Yang: 中国の易経で使われる符号 |
𝄖 | 𝄖 | \u1d116 | U+1D116 | Musical Symbol One-Line Staff: 五線譜にある5つの横線またはその上や下に書き足す横線(たぶん) |
𝅽 | 𝅽 | \u1d17d | U+1D17D | Musical Symbol Combining Tenuto: テヌート。音符の上や下に書き足す横線で、その音を十分に保つ印 |
罫線 | ||||
─ | ─ | \u2500 | U+2500 | Box Drawings Light Horizontal |
━ | ━ | \u2501 | U+2501 | Box Drawings Heavy Horizontal |
╴ | ╴ | \u2574 | U+2574 | Box Drawings Light Left |
╶ | ╶ | \u2576 | U+2576 | Box Drawings Light Right |
╸ | ╸ | \u2578 | U+2578 | Box Drawings Heavy Left |
╺ | ╺ | \u257a | U+257A | Box Drawings Heavy Right |
╼ | ╼ | \u257c | U+257C | Box Drawings Light Left and Heavy Right |
╾ | ╾ | \u257e | U+257E | Box Drawings Heavy Left and Light Right |
上付き横線(ハイフン/マイナスを含む) | ||||
¯ | ¯ | \u00af | U+00AF | Macron: NFKD/NFKC正規化で U+0020 U+0304 |
ˉ | ˉ | \u02c9 | U+02C9 | Modifier Letter Macron |
‾ | ‾ | \u203e | U+203E | Overline: NFKD/NFKC正規化で U+0020 U+0305 |
⁻ | ⁻ | \u207b | U+207B | Superscript Minus: 上付きマイナス。NFKD/NFKC正規化で U+2212 |
⎺ | ⎺ | \u23ba | U+23BA | Horizontal Scan Line-1 |
⎻ | ⎻ | \u23bb | U+23BB | Horizontal Scan Line-3 |
▔ | ▔ | \u2594 | U+2594 | Upper One Eighth Block: ブロック要素 |
 ̄ |  ̄ | \uffe3 | U+FFE3 | Fullwidth Macron。NFKD/NFKC正規化で U+0020 U+0304 |
下付き横線(ハイフン/マイナスを含む) | ||||
_ | f | \u005f | U+005F | Low Line: 半角アンダースコア(アンダーライン/アンダーバー/下線) |
ˍ | cd | \u02cd | U+02CD | Modifier Letter Low Macron |
₋ | Ðb | \u208b | U+208B | Subscript Minus: 下付きマイナス。NFKD/NFKC正規化で U+2212 |
⎼ | bc | \u23bc | U+23BC | Horizontal Scan Line-7 |
⎽ | bd | \u23bd | U+23BD | Horizontal Scan Line-9 |
▁ | ਕ | \u2581 | U+2581 | Lower One Eighth Block: ブロック要素 |
▂ | ਖ | \u2582 | U+2582 | Lower One Quarter Block: ブロック要素 |
▃ | ਗ | \u2583 | U+2583 | Lower Three Eighths Block: ブロック要素 |
⸏ | e0f | \u2e0f | U+2E0F | Paragraphos |
_ | &#ff3f | \uff3f | U+FF3F | Fullwidth Low Line: 全角アンダースコア(アンダーライン/アンダーバー/下線)。NFKD/NFKC正規化で U+005F |
その他の東アジアの横線のような文字 | ||||
ᅳ | ᅳ | \u1173 | U+1173 | Hangul Jungseong Eu: ハングルのウの発音を表す字母 |
⼀ | ⼀ | \u2f00 | U+2F00 | Kangxi Radical One: 漢字の部首としての”一”。NFKD/NFKC正規化でU+4E00になる |
ー | ー | \u30fc | U+30FC | Katakana-Hiragana Prolonged Sound Mark: ひらがなカタカナの長音記号(長音符) |
ㅡ | ㅡ | \u3161 | U+3161 | Hangul Letter Eu: ハングルのウの発音を表す字母。NFKD/NFKC正規化でU+1173になる |
㆒ | ㆒ | \u3192 | U+3192 | Ideographic Annotation One Mark: 日本での漢文の返り点”一”。NFKD/NFKC正規化でU+4E00になる |
㇐ | ㇐ | \u31d0 | U+31D0 | Cjk Stroke H: 漢字の筆画としての”一” |
一 | 一 | \u4e00 | U+4E00 | Cjk Unified Ideograph-4E00: 漢数字の”一” |
ー | ー | \uff70 | U+FF70 | Halfwidth Katakana-Hiragana Prolonged Sound Mark: 半角カタカナ長音記号(長音符)。NFKD/NFKC正規化で全角の長音記号(U+30FC)になる |
ᅳ | ᅳ | \uffda | U+FFDA | Halfwidth Hangul Letter Eu: ハングルのウの発音の字母の半角。NFKD/NFKC正規化でU+1173になる |
HTML出力するとき
Unicode文字が
- 16進数コード文字列
(〇〇〇)
- 10進数コード文字列
(〇〇〇)
マルっと置換え(str_replace() or str_ireplace())
そのままだとできないらしい・・・
jsonの変換をそのまま使うとunicodeとして変換されるので、それを利用するっぽい
unicodeにした文字を戻す時もjsonの変換を利用
- 対象の文字列を「json_encode()」して最初と最後のカッコを取る
- 置き換える
- 「json_decode()」で戻す
// 文字列をunicodeに変換(※変換されたunicodeは小文字) function codepoint_encode($str) { return substr(json_encode($str), 1, -1); } // unicodeから文字列に変換(※unicodeが大文字だったら変換不可) function codepoint_decode($str) { return json_decode(sprintf('"%s"', $str)); } // =============================================== // ハイフンに似た文字一覧(大文字じゃなく小文字にしておく) $seed = array( // ▼使った文字: https://hydrocul.github.io/wiki/blog/2014/1101-hyphen-minus-wave-tilde.html '-', // U+002D json_encodeしても「-」のままなので、置換え対象に含まれるようにそのまま追加 '\u002d', // U+002D Hyphen-Minus: よく使われる普通の半角ハイフンマイナス '\ufe63', // U+FE63 小さいハイフンマイナス。NFKD/NFKC正規化で U+002D '\uff0d', // U+FF0D 全角ハイフンマイナス。NFKD/NFKC正規化で U+002D // ハイフン '\u00ad', // U+00AD Soft Hyphen: ソフトハイフン '\u2010', // U+2010 Hyphen: U+002Dとは別の普通のハイフン '\u2011', // U+2011 Non-Breaking Hyphen: 折り返しをしないハイフン。NFKD/NFKC正規化でU+2010になる '\u2043', // U+2043 Hyphen Bullet: ビュレットとして使うハイフン(ビューレットとは箇条書きの先頭につける記号) // マイナス '\u02d7', // U+02D7 Modifier Letter Minus Sign '\u2212', // U+2212 Minus Sign: U+002Dとは別の普通のマイナス '\u29ff', // U+29FF Miny: (本当にマイナスなのかどうか詳細不明) '\u2796', // U+2796 Heavy Minus Sign: 太いマイナス記号 // ダッシュ '\u2012', // U+2012 Figure Dash '\u2013', // U+2013 En Dash: “n”と同じ横幅のダッシュ '\u2014', // U+2014 Em Dash: “m”と同じ横幅のダッシュ '\u2015', // U+2015 Horizontal Bar: クォーテーションダッシュ '\u2e3a', // U+2E3A Two-Em Dash: “m”の2倍の横幅のダッシュ '\u2e3b', // U+2E3B Three-Em Dash: “m”の3倍の横幅のダッシュ '\ufe58', // U+FE58 Small Em Dash: NFKD/NFKC正規化でU+2014になる // その他横線 '\u23af', // U+23AF Horizontal Line Extension '\u23e4', // U+23E4 Straightness: 直線を表す技術的な記号(として本当に使われるのか不明) '\u268a', // U+268A Monogram for Yang: 中国の易経で使われる符号 '\u1d116', // U+1D116 Musical Symbol One-Line Staff: 五線譜にある5つの横線またはその上や下に書き足す横線(たぶん) '\u1d17d', // U+1D17D Musical Symbol Combining Tenuto: テヌート。音符の上や下に書き足す横線で、その音を十分に保つ印 // 罫線 '\u2500', // U+2500 Box Drawings Light Horizontal '\u2501', // U+2501 Box Drawings Heavy Horizontal '\u2574', // U+2574 Box Drawings Light Left '\u2576', // U+2576 Box Drawings Light Right '\u2578', // U+2578 Box Drawings Heavy Left '\u257a', // U+257A Box Drawings Heavy Right '\u257c', // U+257C Box Drawings Light Left and Heavy Right '\u257e', // U+257E Box Drawings Heavy Left and Light Right // 上付き横線(ハイフン/マイナスを含む) '\u00af', // U+00AF Macron: NFKD/NFKC正規化で U+0020 U+0304 '\u02c9', // U+02C9 Modifier Letter Macron '\u203e', // U+203E Overline: NFKD/NFKC正規化で U+0020 U+0305 '\u207b', // U+207B Superscript Minus: 上付きマイナス。NFKD/NFKC正規化で U+2212 '\u23ba', // U+23BA Horizontal Scan Line-1 '\u23bb', // U+23BB Horizontal Scan Line-3 '\u2594', // U+2594 Upper One Eighth Block: ブロック要素 '\uffe3', // U+FFE3 Fullwidth Macron。NFKD/NFKC正規化で U+0020 U+0304 // 下付き横線(ハイフン/マイナスを含む) // '\u005f', // U+005F Low Line: 半角アンダースコア(アンダーライン/アンダーバー/下線) '\u02cd', // U+02CD Modifier Letter Low Macron '\u208b', // U+208B Subscript Minus: 下付きマイナス。NFKD/NFKC正規化で U+2212 '\u23bc', // U+23BC Horizontal Scan Line-7 '\u23bd', // U+23BD Horizontal Scan Line-9 '\u2581', // U+2581 Lower One Eighth Block: ブロック要素 '\u2582', // U+2582 Lower One Quarter Block: ブロック要素 '\u2583', // U+2583 Lower Three Eighths Block: ブロック要素 '\u2e0f', // U+2E0F Paragraphos // '\uff3f', // U+FF3F Fullwidth Low Line: 全角アンダースコア(アンダーライン/アンダーバー/下線)。NFKD/NFKC正規化で U+005F // その他の東アジアの横線のような文字 '\u1173', // U+1173 Hangul Jungseong Eu: ハングルのウの発音を表す字母 '\u2f00', // U+2F00 Kangxi Radical One: 漢字の部首としての”一”。NFKD/NFKC正規化でU+4E00になる // '\u30fc', // U+30FC Katakana-Hiragana Prolonged Sound Mark: ひらがなカタカナの長音記号(長音符) '\u3161', // U+3161 Hangul Letter Eu: ハングルのウの発音を表す字母。NFKD/NFKC正規化でU+1173になる '\u3192', // U+3192 Ideographic Annotation One Mark: 日本での漢文の返り点”一”。NFKD/NFKC正規化でU+4E00になる '\u31d0', // U+31D0 Cjk Stroke H: 漢字の筆画としての”一” // '\u4e00', // U+4E00 Cjk Unified Ideograph-4E00: 漢数字の”一” '\uff70', // U+FF70 Halfwidth Katakana-Hiragana Prolonged Sound Mark: 半角カタカナ長音記号(長音符)。NFKD/NFKC正規化で全角の長音記号(U+30FC)になる '\uffda', // U+FFDA Halfwidth Hangul Letter Eu: ハングルのウの発音の字母の半角。NFKD/NFKC正規化でU+1173になる ); $orig_char = xxxxxxxxx; // 入力された文字列をunicodeに変換(「-(U+002D)」はエンコードしても「-」のまま) $ipt_unicode = codepoint_encode($orig_char); // var_export($ipt_unicode); $use_char = '\u002d'; // 「\u002d」「\uff0d」のどちらかに置換えれば大丈夫っぽそう // $use_char = strtolower($use_char); // json_decode()のコトを考え強制的に小文字にしておく $rep_unicode = str_ireplace($seed, $use_char, $ipt_unicode); // $seedの中のunicode指定が大文字・小文字混在しても問題無しにしたいとき // 置き換え完了したので、unicodeをデコード $result = codepoint_decode($rep_unicode); // var_export($result);
雑記
unicodeが大文字なら「json_decode()」しても元の文字に戻らない
→「\u2500」は「─」に変換されるが、「\U2500」は「\U2500」のまま