From: "matz (Yukihiro Matsumoto)" Date: 2013-05-07T10:03:07+09:00 Subject: [ruby-core:54839] [CommonRuby - Feature #7845] Strip doesn't handle unicode space characters in ruby 1.9.2 & 1.9.3 (does in 1.9.1) Issue #7845 has been updated by matz (Yukihiro Matsumoto). =begin Thank you for valuable input. That indicates the need for something like (({str.strip(:ascii)})), or opposite (({str.strip(:utf8)})) Matz. =end ---------------------------------------- Feature #7845: Strip doesn't handle unicode space characters in ruby 1.9.2 & 1.9.3 (does in 1.9.1) https://bugs.ruby-lang.org/issues/7845#change-39172 Author: timothyg56 (Timothy Garnett) Status: Open Priority: Normal Assignee: Category: Target version: Strip and associated methods in ruby 1.9.2 and 1.9.3 do not remove leading/trailing unicode space characters (such as non-breaking space \u00A0 and ideographic space \u3000) unlike ruby 1.9.1. I'd expect the 1.9.1 behavior. Looking at the underlying native lstrip! and rstrip! methods it looks like this is because 1.9.1 uses rb_enc_isspace() whereas 1.9.2+ uses rb_isspace(). 1.9.1p378 :001 > "\u3000\u00a0".strip => "" 1.9.2p320 :001 > "\u3000\u00a0".strip => "�����" 1.9.3p286 :001 > "\u3000\u00a0".strip => "�����" -- http://bugs.ruby-lang.org/