aboutsummaryrefslogtreecommitdiffstats
path: root/spec/lib/mail_handler/mail_handler_spec.rb
diff options
context:
space:
mode:
authorMark Longair <mhl@pobox.com>2013-05-15 14:52:07 +0100
committerMark Longair <mhl@pobox.com>2013-05-16 09:06:27 +0100
commit95cf55aad1f0985d28c28beb61e122dc7465b039 (patch)
treed7bef74e2b14f3c28418b2961a6464447e97e6e2 /spec/lib/mail_handler/mail_handler_spec.rb
parent004e683db2cc3abe51225d071db993f81f3a6742 (diff)
Add functions for converting from arbitrary text data to UTF-8
Throughout the codebase it is simplest and most consistent if we could assume that all text/* attachments are represented by UTF-8 strings, and this was largely true with the TMail backend which ensured that all returned text parts were in UTF-8. We have to change the replacement Mail-backed to similarly attempt to convert text parts to UTF-8. This commit introduces two functions which are useful for this. The normalize_string_to_utf8 function will try various encodings, either suggested or guessed (with charlock_holmes) to convert the passed string to UTF-8, and if it can't find a suitable encoding will throw an exception. Unfortunately, the current behaviour of the site is that uninterpretable text/* attachments are still passed around and mangled to UTF-8 just before display. To mimic this it's also useful to have the convert_string_to_utf8_or_binary function, which tries to convert the string to UTF-8 with normalize_string_to_utf8, but if that's not possible just returns the original string. (In Ruby 1.9, encoding will be set to UTF-8 or ASCII-8BIT appropriately.)
Diffstat (limited to 'spec/lib/mail_handler/mail_handler_spec.rb')
0 files changed, 0 insertions, 0 deletions