Você poderia usar o luit
, que permitiria que você executasse seu aplicativo cp850 (o que for locale você pode encontrar para isso) em um terminal UTF-8, e deixe luit
fazer a tradução de / para o UTF-8.
Por que vale a pena, uma captura de tela do cp850 com o luit:
As capturas de tela foram configuradas por um conjunto de scripts que exibiram uma tela de teste para cada codificação de localidade. Nem todas as codificações têm informações de localidade correspondentes configuradas. As 761 locales listadas no meu sistema Debian 7 usando locale -a
correspondem a apenas 32 codificações:
ANSI_X3.4-1968 EUC-TW ISO-8859-14 ISO-8859-9
ARMSCII-8 GB18030 ISO-8859-15 KOI8-R
BIG5 GB2312 ISO-8859-2 KOI8-T
BIG5-HKSCS GBK ISO-8859-3 KOI8-U
CP1251 GEORGIAN-PS ISO-8859-5 RK1048
CP1255 ISO-8859-1 ISO-8859-6 TCVN5712-1
EUC-JP ISO-8859-10 ISO-8859-7 TIS-620
EUC-KR ISO-8859-13 ISO-8859-8 UTF-8
Se você tiver uma versão recente (por exemplo, 2.0 em 2013) do luit e as informações de localidade instaladas, a execução é simples:
luit -encoding cp850
Isso executa um shell no qual os aplicativos usam a página de códigos 850, mas seu select / paste (e teclado) são traduzidos para / da codificação de localidade no shell externo (assumido como sendo UTF-8, pois não funcionaria com apenas a localidade POSIX).
A opção -v
(verbose) mostra um pequeno detalhe:
$ luit -encoding cp850 -v -v
getCharsetByName(ASCII)
cachedCharset 'ASCII'
getCharsetByName(<null>)
using unknown 94-charset
getCharsetByName(CP 850)
cachedCharset 'CP 850'
getCharsetByName(<null>)
using unknown 94-charset
Input: G0 is ASCII, G1 is Unknown (94), G2 is CP 850, G3 is Unknown (94).
GL is G0, GR is G2.
Output: G0 is ASCII, G1 is Unknown (94), G2 is CP 850, G3 is Unknown (94).
GL is G0, GR is G2.
O uso do antigo luit não funciona tão bem, pois depende de informações incompletas do local. Veja o que a luit 1.1.1 faz:
$ luit -encoding cp850 -v -v
Warning: couldn't find charset data for locale cp850; using ISO 8859-1.
G0 is ASCII, G1 is Unknown (94), G2 is ISO 8859-1, G3 is Unknown (94).
GL is G0, GR is G2.
Se você estiver executando o OpenSuSE, isso fornece um pacote. No outro extremo (por exemplo, Ubuntu), configurar as localidades é um incômodo, mas compilar luit
da fonte é relativamente simples.