Ruby 2.0.0 String # Match ArgumentError: неверная последовательность байтов в UTF-8

Я вижу это много и не нашел изящного решения. Если пользовательский ввод содержит недопустимые байтовые последовательности, мне нужно, чтобы он не вызывал исключения. Например:

# @raw_response comes from user and contains invalid UTF-8
# for example: @raw_response = "\xBF"  
regex.match(@raw_response)
ArgumentError: invalid byte sequence in UTF-8

Было задано множество похожих вопросов, и в результате получается кодирование или принудительное кодирование строки. Однако ни один из них не работает для меня:

regex.match(@raw_response.force_encoding("UTF-8"))
ArgumentError: invalid byte sequence in UTF-8

или же

regex.match(@raw_response.encode("UTF-8", :invalid=>:replace, :replace=>"?"))
ArgumentError: invalid byte sequence in UTF-8

Это ошибка в Ruby 2.0.0 или я что-то упустил?

Что странно, так это то, что кодирование выполняется правильно, но сопоставление продолжает вызывать исключение:

@raw_response.encode("UTF-8", :invalid=>:replace, :replace=>"?").encoding
 => #<Encoding:UTF-8>

Ответы на вопрос(2)

Ваш ответ на вопрос