class Kramdown::Parser::Kramdown

def extract_string(range, strscan = @src)

also works correctly under Ruby 1.9.
Extract the part of the StringScanner backed string specified by the +range+. This method
def extract_string(range, strscan = @src)
  result = nil
  if RUBY_VERSION >= '1.9'
    begin
      enc = strscan.string.encoding
      strscan.string.force_encoding('ASCII-8BIT')
      result = strscan.string[range].force_encoding(enc)
    ensure
      strscan.string.force_encoding(enc)
    end
  else
    result = strscan.string[range]
  end
  result
end