2005-02-06 [日]
_ [Ruby] マルチバイト文字の部分文字列切り出し
Rubyの文字列から部分文字列を切り出したいとき、文字化けが発生する事があります。 例えば先頭からマルチバイト文字の途中まで切り出そうしたとき
$KCODE = 'sjis'
str = "銃を向けられるたび5セントもらってたら、今ごろ大金モチだぜ"
str2 = str[0 .. 8] # 先頭から9バイト
p str2 #=> "銃を向け\202"
このように化けてしまいます。対策としてはこんな感じで。
$KCODE = 'sjis'
str = "銃を向けられるたび5セントもらってたら、今ごろ大金モチだぜ"
str2 = str[0 .. 8]
str2[-1,1] = '' if /.\z/ !~ str2 # 末尾文字削除
p str2 #=> "銃を向け"
文字列の途中から切り出すときは先頭文字も気をつけないとなりませんね。hermes constance bag cost たわごと(2005-02-06)
hermes belt saks たわごと(2005-02-06)
hermes paketaufkleber zum drucken たわごと(2005-02-06)