Eu recentemente implementei e-mails recebidos para um aplicativo e, garoto, eu abri os portões do inferno? Desde então, a cada dois dias chega um email que faz com que o aplicativo falhe de uma maneira diferente.
Uma dessas coisas são os e-mails codificados como UTF-7. A maioria dos emails vem como ASCII, algumas das codificações latinas ou, felizmente, UTF-8.
As mensagens de erro do Hotmail (como endereço de email não existe ou cota excedida) parecem vir como UTF-7. Infelizmente, UTF-7 não é uma codificação que Ruby entende:
> "hello world".encode("utf-8", "utf-7")
Encoding::ConverterNotFoundError: code converter not found (UTF-7 to UTF-8)
> Encoding::UTF_7
=> #<Encoding:UTF-7 (dummy)>
Meu aplicativo não falha, ele realmente lida com o email muito bem, mas me envia uma notificação sobre o possível erro.
Passei algum tempo pesquisando no Google e não consigo encontrar ninguém que implementou a conversão, pelo menos não como um Ruby 1.9.3 Encoding :: Converter.
Portanto, minha pergunta é: como nunca recebi um email com conteúdo real, de uma pessoa real, em UTF-7, qual a relevância dessa codificação? posso ignorá-lo com segurança?