Строка "\302\240"
является строкой в кодировке UTF-8 (C2 A0
) для кодовой точки Unicode A0
, которая представляет символ пробела без пробелов.Есть много других символов пространства Юникода.К сожалению, метод String#strip
не удаляет ничего из этого.
Если вы используете Ruby 1.9.2, то вы можете решить эту проблему следующим образом:
# Ruby 1.9.2 only.
# Remove any whitespace-like characters from beginning/end.
"\302\240\302\240LS 600".gsub(/^\p{Space}+|\p{Space}+$/, "")
В поддержке Ruby 1.8.7Юникод не так хорош.Вы можете быть успешным, если вы можете зависеть от ActiveSupport::Multibyte
Rails.Это дает преимущество в том, что вы получаете работающий метод strip
бесплатно.Установите ActiveSupport с gem install activesupport
и попробуйте следующее:
# Ruby 1.8.7/1.9.2.
$KCODE = "u"
require "rubygems"
require "active_support/core_ext/string/multibyte"
# Remove any whitespace-like characters from beginning/end.
"\302\240\302\240LS 600".mb_chars.strip.to_s