これはよくある質問ですが、信頼できない正規表現に頼らないと答えが見つからないようです。ルビーの特殊文字をエスケープする
基本的に文字列に\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
私は文字列リテラルを使用する場合したがって、これらをデコードすることができ
が、「#{X}」フォーマット\ xxxのプレースホルダでは、文字にデコードされることはありません。
中間コマンドと同じ文字列をどのように割り当てますか?
ルビーバージョン:1.8.5
あなたが何を意味するのか分かりません、ごめんなさい...多分あなたはその質問を言い換えるべきでしょう。特にコードと出力は私にとっては非常に奇妙なようです。 –
私はちょうど.inspectをばかげたエスケープなしで使用したいと思います。 – Keyo
組み込み型を検査する目的は、リテラルとして使用できるオブジェクトの表現を提供することです。それは "ばかげた"ことではありません。あなたはまったく違うものを探しているようです。おそらく解決策は良い考えです。 –