
Issue #7845 has been updated by TALlama (Seth Roby). matz (Yukihiro Matsumoto) wrote in #note-17:
That indicates the need for something like (({str.strip(:ascii)})), or opposite (({str.strip(:utf8)}))
This issue has been dormant for many years, and Ruby has made a lot of changes to be use UTF-8 defaults while the world has steadily moved in that direction. Should we bring this back into consideration as a fix worth making? It certainly blindsided me, and I've been using Ruby since before this ticket was new. ---------------------------------------- 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-114824 * Author: timothyg56 (Timothy Garnett) * Status: Open ---------------------------------------- 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 => " " -- https://bugs.ruby-lang.org/