Ruby 2.0.0 String # Match ArgumentError: sequência de bytes inválida no UTF-8

Eu vejo muito isso e não descobri uma solução elegante. Se a entrada do usuário contiver seqüências de bytes inválidas, eu preciso poder gerar uma exceção. Por exemplo:

# @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

Inúmeras perguntas semelhantes foram feitas e o resultado parece estar codificando ou forçando a codificar a string. Nenhum desses trabalhos para mim, no entanto:

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

ou

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

Isso é um bug do Ruby 2.0.0 ou estou faltando alguma coisa?

O que é estranho é que parece estar codificando corretamente, mas a correspondência continua a gerar uma exceção:

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

questionAnswers(2)

yourAnswerToTheQuestion