How do I convert this UTF-8 text to text with special characters in bash?
O que você tem não é bastante "texto UTF-8". Você realmente quer texto simples UTF-8 como saída , como é o que o Linux usa para "caracteres especiais" em todos os lugares.
Sua entrada, em vez disso, é MIME ( RFC 2047 ) codificada como UTF-8. O "Q" marca o modo Quoted-Printable e "B" marca o modo Base64. Entre outros, o Encode :: MIME :: Header do Perl pode ser usado para decodificar os dois:
#!/usr/bin/env perl
use open qw(:std :utf8);
use Encode qw(decode);
while (my $line = <STDIN>) {
print decode("MIME-Header", $line);
}
Oneliner (veja perldoc perlrun
para explicação):
perl -CS -MEncode -ne 'print decode("MIME-Header", $_)'
Isso pode levar qualquer formato como entrada:
$ echo "Subject: =?UTF-8?Q?Meine_G=c3=bcte?=, \
=?UTF-8?B?U2Now7ZuZSBHcsO8w59lIQ==?=" | perl ./decode.pl
Subject: Meine Güte, Schöne Grüße!