5

スクリプトを壊している文字列に奇妙な文字が表示されます。put badstring私がコンソールに伝えることができるものから、それらは"\0\0\0\0".

これをテストして無視できるようにしたいのですが...どうすればよいですか?

blank?それが何のためだと思ったempty??!? :

> badstring = "\0"
 => "\u0000" 
> badstring.blank?
NoMethodError: undefined method `blank?' for "\u0000":String
    from (irb):97
    from /Users/meltemi/.rvm/rubies/ruby-2.0.0-p195/bin/irb:16:in `<main>'
> badstring.empty?
 => false
> badstring.nil?
 => false 

編集:これをirbで再作成しようとしていますが、問題があります:

> test1 = "\0\0\0\0"
 => "\u0000\u0000\u0000\u0000" 
> test2 = '\0\0\0\0'
 => "\\0\\0\\0\\0"

私が欲しいのは"\0\0\0\0"文字列なので、テストする方法などを見つけることができますif mystring == "\0\0\0\0"

4

3 に答える 3

3

ここでエンコーディングと文字を確認する必要があるようです。文字列のエンコーディング タイプは で確認できます"string".encoding。すると、ここで実際に使われている文字コードが でわかりますbadstring.chars.map(&:ord)。次に、を使用して文字を置換/削除できますcharacter_code.chr(encoding)

于 2013-05-21T03:23:34.853 に答える