2012-02-25 66 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