不能在Ruby中解析字符串

时间:2012-02-25 07:55:43

标签: ruby string encoding

我有以下字符串,我想在\xA7字符上拆分。

\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 个答案:

答案 0 :(得分:2)

当强制编码到BINARY时,您可以解决该问题,但不确定它是否是正确的解决方案或打破其他事情......

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

答案 1 :(得分:0)

问题是字符串的utf-8字节序列无效。如果您不关心这一点,请尝试将其放在文档的顶部:

# coding: ascii