Codificação Problema: Qt Apps exclui todos os caracteres não ASCII de arquivos

3

As aplicações Qt estão apagando caracteres não latinos de arquivos codificados ISO-8859 no meu sistema Gentoo. Na verdade, estou tentando mesclar dois arquivos em alemão com o KDiff3 e o P4Merge (fazendo "Whlen" de "Wählen"). Ambas as ferramentas não exibem os Umlauts e quando o arquivo é salvo, eles também desaparecem no arquivo. A fonte Dejavu Monospace é usada, Courier New mostra o mesmo comportamento.

Se os arquivos codificados em UTF-8 forem apresentados às ferramentas, todos os não latinos serão tratados corretamente.

O GTK Meld (e todos os outros aplicativos GTK) lida muito bem com os caracteres (ISO-8859-1 e UTF-8). Acredito que seja minha configuração de localização, mas não consigo discernir o que está errado ...

Alguma idéia?

Configurações:

 $ locale -a
 C
 POSIX
 de_DE
 de_DE.iso88591
 de_DE.iso885915@euro
 de_DE.utf8
 de_DE@euro
 deutsch
 en_US
 en_US.iso88591
 en_US.utf8
 german

 $ locale
 LANG=en_US.UTF-8
 LC_CTYPE="en_US.UTF-8"
 LC_NUMERIC="en_US.UTF-8"
 LC_TIME="en_US.UTF-8"
 LC_COLLATE=C
 LC_MONETARY="en_US.UTF-8"
 LC_MESSAGES="en_US.UTF-8"
 LC_PAPER="en_US.UTF-8"
 LC_NAME="en_US.UTF-8"
 LC_ADDRESS="en_US.UTF-8"
 LC_TELEPHONE="en_US.UTF-8"
 LC_MEASUREMENT="en_US.UTF-8"
 LC_IDENTIFICATION="en_US.UTF-8"
 LC_ALL=

Qt usa sinalizadores para x11-libs/qt-core-4.8.2:4 :

exceptions glib iconv qt3support ssl (-aqua) -c++0x -debug -icu -pch
(-optimized-qmake%) (-qpa%)
    
por mistofdoom 11.01.2013 / 14:17

1 resposta

1

If UTF-8 encoded files are presented to the tools, all non-latins are handled correctly.

Então eu sugiro que você recodifique os arquivos em UTF-8, mescle-os e, em seguida, retorne se necessário.

GTK Meld (and all other GTK apps) handles the chars (ISO-8859-1 and UTF-8) quite well.

Eu acho que você pode chamar isso de um recurso, não um bug: quando o aplicativo vê algumas seqüências de bytes que ele não consegue interpretar como caracteres na localidade atual, ele tem várias opções. Pode começar a adivinhar, que aparentemente é o que o GTK faz. Ou pode considerar os bytes correspondentes como erros e soltá-los do arquivo. Ou pode informar o usuário sobre esses problemas, o que seria ainda melhor, mas aparentemente o KDE não vai tão longe.

I believe its my Locale configuration, but can't discern what's amiss...

Sua localidade indica que os arquivos de texto devem ser codificados como UTF-8. Seus arquivos, no entanto, não são. Então, há uma discrepância. Você pode corrigir isso, seja recodificando os arquivos ou iniciando o processo em questão com uma localidade diferente. A faceta LC_CTYPE deve ser a relevante, mas comece com LC_ALL primeiro, apenas para ter certeza. Ao invocar o comando a partir da linha de comando, basta prefixar a configuração correta ao comando, ou seja,

LC_CTYPE=en_US.iso88591 kdiff3 foo bar
    
por 16.01.2013 / 07:45