Ruby 2.0.0 String # Match ArgumentError: secuencia de bytes no válida en UTF-8

Veo esto mucho y no he encontrado una solución elegante. Si la entrada del usuario contiene secuencias de bytes no válidas, necesito poder hacer que no genere una excepción. Por ejemplo:

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

Se han hecho numerosas preguntas similares y el resultado parece estar codificando o forzando la codificación de la cadena. Sin embargo, ninguno de estos funciona para mí:

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

o

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

¿Es esto un error con Ruby 2.0.0 o me falta algo?

Lo extraño es que parece estar codificando correctamente, pero la coincidencia continúa generando una excepción:

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

Respuestas a la pregunta(2)

Su respuesta a la pregunta