この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
Unicode正規化 norm_KCとnorm_KDの注意点特殊な文字に対して、別文字になってしまいます。
例:
irb(main):004:0> query=”250℃”
=> “250℃
irb(main):005:0> q = query.downcase.to_u.norm_KC.to_s
=> “250\xC2\xB0C”
irb(main):006:0> q.force_encoding(“UTF-8”) if q.respond_to?(:force_encoding) => “250°C”
一文字「℃」は2文字「°C」になってしまう。
| input | NFD,NFC | NFKD,NFKC |
|---|---|---|
IDSPU+3000和字間隔 | IDSPU+3000和字間隔 | SPU+0020スペース |
‥U+2025二点リーダ | ‥U+2025二点リーダ | ..U+002E U+002Eピリオド+ピリオド |
…U+2026三点リーダ | …U+2026三点リーダ | …U+002E U+002E U+002Eピリオド+ピリオド+ピリオド |
″U+2033秒 | ″U+2033秒 | ′′U+2032 U+2032分+分 |
℃U+2103摂氏度記号 | ℃U+2103摂氏度記号 | °CU+00B0 U+0043度+ラテン大文字C |
∬U+222C二重積分記号 | ∬U+222C二重積分記号 | ∫∫U+222B U+222B積分記号+積分記号 |


の可能性とは-1-218x150.png)





















の可能性とは-1-100x70.png)











