def check_sass_encoding(str, &block)
return check_encoding(str, &block), nil if ruby1_8?
bin = str.dup.force_encoding("BINARY")
encoding = Haml::Util::ENCODINGS_TO_CHECK.find do |enc|
bin =~ Haml::Util::CHARSET_REGEXPS[enc]
end
charset, bom = $1, $2
if charset
charset = charset.force_encoding(encoding).encode("UTF-8")
if endianness = encoding[/[BL]E$/]
begin
Encoding.find(charset + endianness)
charset << endianness
rescue ArgumentError
end
end
str.force_encoding(charset)
elsif bom
str.force_encoding(encoding)
end
str = check_encoding(str, &block)
return str.encode("UTF-8"), str.encoding
end