2011-10-05 6 views
5

Rubyのデバッガで、これはlogger.info stringのように文字列を返すので、私はRuby Stringオブジェクトが空かどうか

pp string.inspect # -> blank 
pp string   # -> blank 
pp string.Class # -> String 
pp string.empty? # -> false 
pp string.nil? # -> false 
pp string.blank? # -> false 
pp string.to_s # -> blank 

私は、文字列内のコンテンツが存在しているはず得るものであるとき、私はRailsのrender_to_string

上のRubyの出力である文字列を持っています期待していますが、私はそれに到達する方法がわかりません。

アイデア?ありがとう!

編集:この問題は非常にローカライズされていることがわかりました。私がRubyデバッガを使用しているときにのみ発生します。そして、その中にパーセント記号を持つ文字列が発生します。例えば

私は、文字列

string = 'this is a string with a % symbol' 

を行った場合、文字列はもはや、検査しない印刷、あるいは解凍することができます。

私はRuby 1.8とRails 2.3を使用しています。

これは、Rubyの何か普通のことについての私の理解の欠如の一部かもしれないと思います。

+6

はおそらく改行文字が含まれています。 'string.length'はあなたに何を与えるのですか?また、 'print" ["+ string +"] "' 'を試してみてください。 'p'、' puts'や 'print'のような' pp'以外のものを使ってみてください。 – Zabba

+0

string.lengthは12045を返します。長い文字列です。他のものは動作しませんでした。 – vinhboy

+0

string.encodingとは何ですか? – squarism

答えて

2

あなたの文字列は間違いなく空ではないようです。

あなたはStringクラスのためのhexdumpが拡張をダウンロードし、これを行うことができます。

require 'hexdump' 

#... whatever you do in your program 

puts string.hexdump 

とあなたの質問に出力を投稿しますか?

我々は...それらが非印字可能文字であっても、文字列に何

見ることができるこの方法:

http://www.unixgods.org/~tilo/Ruby/hexdump.html

関連する問題