2011-10-05 56 views
5

我有一個字符串,它的Ruby on Rails的render_to_stringRuby String Object Empty or Not?

輸出。當在Ruby調試器,這是我所得到的

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 

我知道有一個字符串中的內容,因爲logger.info string返回字符串預計,但我不知道如何去做到這一點。

任何想法?謝謝!

編輯:我想通了,這個問題是非常本地化的。它只發生在我使用ruby-debugger時。它發生在任何有百分比符號的字符串中。

例如,如果我由串

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

字符串可以不再被檢查,打印,或甚至解壓縮。

我在Ruby 1.8和Rails 2.3上。

我認爲這可能只是我對Ruby中某些普通事物缺乏理解的一部分。

+6

可能包含一個換行符。 'string.length'給你什麼?另外嘗試'打印「[」+字符串+「]」'..這也應該有助於「看到」字符串包含什麼。嘗試使用「pp」以外的內容,例如「p」,「puts」或「print」。 – 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