Это распространенный вопрос, но просто не может найти ответ, не прибегая к ненадежным регулярным выражениям.Экранирование специальных символов в рубине
В принципе, если в строке есть \302\240
или аналогичная комбинация, я хочу заменить ее на реальный символ.
Я использую PLruby для этого, следовательно предупреждение.
obj = {"a"=>"some string with special chars"}
warn obj.inspect
NOTICE: {"Outputs"=>["a\302\240b"]} <- chars are escaped
warn "\302\240"
NOTICE: <-- there is a non breaking space here, like I want
warn "#{json.inspect}"
NOTICE: {"Outputs"=>["a\302\240"b]} <- chars are escaped
Таким образом, они могут быть расшифрованы при использовании строкового литерала, но с «{х} #» форматировать в \ ххх заполнителей никогда не декодируется в символы.
Как бы присвоить ту же строку, что и средняя команда?
Рубин Версия: 1.8.5
Не знаю, что вы имеете в виду, извините ... Возможно, вам стоит перефразировать вопрос. Особенно код и вывод кажутся мне очень странными. –
Я просто хочу использовать .inspect без смешного ускользания. – Keyo
Цель проверки по встроенным типам - предоставить вам представление объекта, который может использоваться как литерал. Это не «смешно». Кажется, вы ищете нечто совершенно другое, может быть, решение было бы хорошей идеей. –