jcodeを使ってみる
公開日:
:
最終更新日:2014/02/04
Ruby
記事内に広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
エンコーディングを指定しない場合
irb(main):023:0> $KCODE = "NONE"
=> "NONE"
irb(main):024:0> require 'jcode'
=> true
irb(main):025:0> str = "\342\210\202x/\342\210\202y"
=> "\342\210\202x/\342\210\202y"
irb(main):026:0> str.length
=> 9
irb(main):027:0> str.jlength
=> 9
irb(main):028:0> str.jcount("\210")
=> 2
irb(main):029:0> str.chop!
=> "\342\210\202x/\342\210\202"
irb(main):030:0> str.chop!
=> "\342\210\202x/\342\210"
irb(main):032:0> str = "\342\210\202x/\342\210\202y"
=> "\342\210\202x/\342\210\202y"
irb(main):033:0> str.each_char {|ch| print ch.inspect, " "}
"\342" "\210" "\202" "x" "/" "\342" "\210" "\202" "y" => "\342\210\202x/\342\210\202y"
str.jlength が、自分の求めていたものっぽい。
エンコーディングにUTF-8を指定した場合
irb(main):034:0> $KCODE = "UTF-8"
=> "UTF-8"
irb(main):035:0> require 'jcode'
=> false
irb(main):036:0> str = "\342\210\202x/\342\210\202y"
=> "∂x/∂y"
irb(main):037:0> str.length
=> 9
irb(main):038:0> str.jlength
=> 5
irb(main):039:0> str.jcount("\210")
=> 0
irb(main):040:0> str.chop!
=> "∂x/∂"
irb(main):041:0> str.chop!
=> "∂x/"
irb(main):042:0> str = "\342\210\202x/\342\210\202y"
=> "∂x/∂y"
irb(main):043:0> str.each_char {|ch| print ch.inspect, " "}
"∂" "x" "/" "∂" "y" => "∂x/∂y"
BINGO!!やっぱりstr.jlength が、自分の求めていたものだった。
関連記事
- PREV
- Iconvを使ってみる
- NEXT
- NKFを使ってみる