Por que obtenho um Encoding :: CompatibilityError com #inspect?

O código a seguir funciona sem problemas:

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

p Text.new('Hello World')

Mas se eu tentarp Text.new('Hä, was soll das?') Eu recebo um Encoding :: 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>'

Porque isso?

E mais importante: como posso evitá-lo?

questionAnswers(1)

yourAnswerToTheQuestion