【ruby】【rails】抑えておきたい!サクッと「漢字」の文字数をカウントする方法
「文字数」をキーにロジックを組むことって結構ありますよね。
例えばこんな場合
それがおなじみの「size」や「count」なら問題ないのですが今回は、
「漢字の文字数カウント」
だったので今後のことも考えて残しておきたい思います。
そもそも漢字だったらどうなるの?
という訳で漢字だとこんな感じ。。。
(railsのコンソールを開いてます。)
>> str = '北海道 札幌市' => "北海道 札幌市" >> str.size => 19 >> str.length => 19
なんでこんな数字になるの?
これはバイト数(railsのコンソールはUTFなので漢字は
UTF-8による符号化で、漢字や仮名などの表現に3バイトを要するらしい。)
http://ja.wikipedia.org/wiki/UTF-8
んじゃどうするの?
>> str = '北海道札幌市' => "北海道札幌市" >> str.split(//).size => 6 >> str = '北海道 札幌市’ => "北海道 札幌市” >> str.split(//).size => 7 >> str = '北海道 札幌市' => "北海道 札幌市" >> str.split(//).size => 7
条件分岐で使う場合は空白の場合、半角も全角も1文字として認識されるみたいなので
ご注意を!