2012-02-25 83 views
1

我有以下字符串,我想分割\xA7字符。無法在Ruby中分析字符串

\xFF$New Server\xA77\xA750

問題的存在是我無法弄清楚如何告訴Ruby來正確拆分它的\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