2012-02-25 12 views
1

\xA7文字に分割したい文字列があります。Rubyで文字列を解析できません

\xFF$New Server\xA77\xA750

ている問題は、私は\xA7マーカーに正しくそれを分割するためにルビーを伝える方法を見つけ出すことができないということです。

これは私が取得エラーです:

>> "\xFF$New Server\xA77\xA750".split("\xA7") 
ArgumentError: invalid byte sequence in UTF-8 
from (irb):26:in `split' 
from (irb):26 
from /Users/wedtm/.rbenv/versions/1.9.2-p290/bin/irb:12:in `<main>' 

答えて

2

BINARYにエンコーディングを強制するとき、あなたはそれが正解だか他のものを壊すかどうかわからないけれども、その問題を回避することができます...

input = "\xFF$New Server\xA77\xA750".force_encoding('BINARY') 
split = "\xA7".force_encoding('BINARY') 
input.split(split) # => ["\xFF$New Server", "7", "50"] 
0

問題は、文字列が無効UTF-8バイトのシーケンスを有することです。あなたはそれがあなたの文書の先頭にこれを入れてみてください気にしない場合:

# coding: ascii 
関連する問題