Не могу разобрать строку в Ruby - PullRequest
1 голос
/ 25 февраля 2012

У меня есть следующая строка, которую я хотел бы разделить на символ \xA7.

\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 ]

2 голосов
/ 25 февраля 2012

При принудительном кодировании BINARY вы можете обойти эту проблему, хотя и не уверены, является ли это правильным решением или нарушает другие функции ...

input = "\xFF$New Server\xA77\xA750".force_encoding('BINARY')
split = "\xA7".force_encoding('BINARY')
input.split(split) # => ["\xFF$New Server", "7", "50"]
0 голосов
/ 25 февраля 2012

Проблема в том, что строка содержит недопустимую последовательность байтов utf-8. Если вас это не волнует, попробуйте указать это в верхней части документа:

# coding: ascii
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...