Skip to content

Instantly share code, notes, and snippets.

@theagoliveira
Created July 29, 2020 21:26
Show Gist options
  • Save theagoliveira/55b5f1582e05e1d66bd36a2b65d95824 to your computer and use it in GitHub Desktop.
Save theagoliveira/55b5f1582e05e1d66bd36a2b65d95824 to your computer and use it in GitHub Desktop.
Encoding methods for tests using Ruby
def convert_iso_8859_1_to_utf8_a(text)
text.force_encoding('iso-8859-1').encode('utf-8')
end
def convert_iso_8859_1_to_utf8_b(text)
text.encode('utf-8').force_encoding('iso-8859-1')
end
def convert_iso_8859_1_to_utf8_c(text)
text.force_encoding('utf-8').encode('iso-8859-1')
end
def convert_iso_8859_1_to_utf8_d(text)
text.encode('iso-8859-1').force_encoding('utf-8')
end
def convert_iso_8859_1_fallback_to_utf8_a(text)
fallback = {}
fallback["\x81"] = "\u0081".force_encoding('utf-8')
fallback["\x8D"] = "\u008D".force_encoding('utf-8')
fallback["\x8F"] = "\u008F".force_encoding('utf-8')
fallback["\x90"] = "\u0090".force_encoding('utf-8')
fallback["\x9D"] = "\u009D".force_encoding('utf-8')
text.force_encoding('iso-8859-1').encode('utf-8', fallback: fallback)
end
def convert_iso_8859_1_fallback_to_utf8_b(text)
fallback = {}
fallback["\x81"] = "\u0081".force_encoding('utf-8')
fallback["\x8D"] = "\u008D".force_encoding('utf-8')
fallback["\x8F"] = "\u008F".force_encoding('utf-8')
fallback["\x90"] = "\u0090".force_encoding('utf-8')
fallback["\x9D"] = "\u009D".force_encoding('utf-8')
text.encode('utf-8', fallback: fallback).force_encoding('iso-8859-1')
end
def convert_iso_8859_1_fallback_to_utf8_c(text)
fallback = {}
fallback["\u0081"] = "\x81".force_encoding('iso-8859-1')
fallback["\u008D"] = "\x8D".force_encoding('iso-8859-1')
fallback["\u008F"] = "\x8F".force_encoding('iso-8859-1')
fallback["\u0090"] = "\x90".force_encoding('iso-8859-1')
fallback["\u009D"] = "\x9D".force_encoding('iso-8859-1')
text.force_encoding('utf-8').encode('iso-8859-1', fallback: fallback)
end
def convert_iso_8859_1_fallback_to_utf8_d(text)
fallback = {}
fallback["\u0081"] = "\x81".force_encoding('iso-8859-1')
fallback["\u008D"] = "\x8D".force_encoding('iso-8859-1')
fallback["\u008F"] = "\x8F".force_encoding('iso-8859-1')
fallback["\u0090"] = "\x90".force_encoding('iso-8859-1')
fallback["\u009D"] = "\x9D".force_encoding('iso-8859-1')
text.encode('iso-8859-1', fallback: fallback).force_encoding('utf-8')
end
def convert_cp1252_fallback_to_utf8_a(text)
fallback = {}
fallback["\x81"] = "\u0081".force_encoding('utf-8')
fallback["\x8D"] = "\u008D".force_encoding('utf-8')
fallback["\x8F"] = "\u008F".force_encoding('utf-8')
fallback["\x90"] = "\u0090".force_encoding('utf-8')
fallback["\x9D"] = "\u009D".force_encoding('utf-8')
text.force_encoding('cp1252').encode('utf-8', fallback: fallback)
end
def convert_cp1252_fallback_to_utf8_b(text)
fallback = {}
fallback["\x81"] = "\u0081".force_encoding('utf-8')
fallback["\x8D"] = "\u008D".force_encoding('utf-8')
fallback["\x8F"] = "\u008F".force_encoding('utf-8')
fallback["\x90"] = "\u0090".force_encoding('utf-8')
fallback["\x9D"] = "\u009D".force_encoding('utf-8')
text.encode('utf-8', fallback: fallback).force_encoding('cp1252')
end
def convert_cp1252_fallback_to_utf8_c(text)
fallback = {}
fallback["\u0081"] = "\x81".force_encoding('cp1252')
fallback["\u008D"] = "\x8D".force_encoding('cp1252')
fallback["\u008F"] = "\x8F".force_encoding('cp1252')
fallback["\u0090"] = "\x90".force_encoding('cp1252')
fallback["\u009D"] = "\x9D".force_encoding('cp1252')
text.force_encoding('utf-8').encode('cp1252', fallback: fallback)
end
def convert_cp1252_fallback_to_utf8_d(text)
fallback = {}
fallback["\u0081"] = "\x81".force_encoding('cp1252')
fallback["\u008D"] = "\x8D".force_encoding('cp1252')
fallback["\u008F"] = "\x8F".force_encoding('cp1252')
fallback["\u0090"] = "\x90".force_encoding('cp1252')
fallback["\u009D"] = "\x9D".force_encoding('cp1252')
text.encode('cp1252', fallback: fallback).force_encoding('utf-8')
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment