String#stripの動作
Ruby 1.9.1と1.9.2での仕様変更
Ruby 1.9の仕様では、strip、lstrip、rstripは全角空白などユニコードの空白も除去する、と思ってましたが、1.9.2でアスキーの空白だけ除去するように変更されていました。
"\u{3000}hello\u{3000}".strip #=> "hello" Ruby 1.9.1 "\u{3000}hello\u{3000}".strip #=> " hello " Ruby 1.9.2
末尾のヌル文字の扱い
rstripとstripはヌル文字も除去することに気付きました。文字列先頭のヌル文字のほうは、lstripとstripで除去されません。末尾のヌル文字の扱いは、Ruby 1.8と1.9で若干違いがあります。
"hello\x0".rstrip #=> "hello" Ruby 1.8、1.9どちらも "hello\x0\n".rstrip #=> "hello\000" Ruby 1.8 "hello\x0\n".rstrip #=> "hello" Ruby 1.9
というわけで、記事を修正しました。