def self.normalize_lines_from_string data
return [] if data.nil_or_empty?
if COERCE_ENCODING
utf8 = ::Encoding::UTF_8
leading_bytes = data[0..2].bytes.to_a
if (leading_2_bytes = leading_bytes[0..1]) == BOM_BYTES_UTF_16LE
data = (data.force_encoding ::Encoding::UTF_16LE)[1..-1].encode utf8
elsif leading_2_bytes == BOM_BYTES_UTF_16BE
data = (data.force_encoding ::Encoding::UTF_16BE)[1..-1].encode utf8
elsif leading_bytes[0..2] == BOM_BYTES_UTF_8
data = data.encoding == utf8 ? data[1..-1] : (data.force_encoding utf8)[1..-1]
else
data = data.force_encoding utf8 unless data.encoding == utf8
end
else
if data[0..2].bytes.to_a == BOM_BYTES_UTF_8
data = data[3..-1]
end
end
data.each_line.map {|line| line.rstrip }
end