¿Por qué obtengo un Encoding :: CompatibilityError con #inspect?

El siguiente código funciona sin problema:

#encoding: utf-8
class Text
  def initialize(txt)
    @txt = txt
  end
  def inspect
    "<Text: %s>" % @txt
  end
end

p Text.new('Hello World')

Pero si lo intentop Text.new('Hä, was soll das?') Me sale un codificador :: CompatibilityError:

inspect_with_umlaut.rb:26:in `p': inspected result must be ASCII only or use the default external encoding (Encoding::CompatibilityError)
  from inspect_with_umlaut.rb:26:in `<main>'

¿Por qué esto?

Y más importante: ¿cómo puedo evitarlo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta