Caracteres não-ASCII exibidos como caixas na caixa de texto do aplicativo VB.Net em Mono

4

Estou executando o Ubuntu 9.10 (não é possível atualizar devido a alguns aplicativos serem incompatíveis com versões posteriores), com todas as atualizações instaladas.

Um colega escreveu um aplicativo VB.Net que parece rodar corretamente sob o Mono, no entanto há um problema com caracteres em caixas de texto: se eles não forem estritamente ASCII, eles serão exibidos como caixas (caractere típico de substituição do Windows).

No começo eu pensei que era um problema com os caracteres gregos (que usamos); no entanto, tentei inserir alguns caracteres ocidentais acentuados (como é, que está na típica página de códigos do Windows de 1252), e eles também apareceram como caixas, portanto não é estritamente um problema com o grego.

Eu tentei digitar grego em uma caixa de texto: a palavra «Δοκιμή» (teste). Em seguida, selecionei o que eu digitei, pressione Ctrl-C, mudei para um editor de texto nativo e pressione Ctrl-V. O resultado foi "ÎοÎÎÎÎÎÎ", que é a palavra grega muito confusa (acho UTF-8 interpretado como Latin-1; eu trabalho muito com Unicode, por isso é fácil reconhecer essas coisas :) No entanto, se você quiser Para verificar, inicie um interpretador Python em um terminal compatível com UTF-8 e tente:

>>> a="Îοκιμή"
>>> print a.decode("utf8").encode("latin1").decode("utf8")
Δοκιμή

que é o que eu digitei.

Agora, o aplicativo também incorpora um controle do Internet Explorer; O Mono faz uma boa emulação (acho que usa um mecanismo Gecko), e em uma caixa de texto dentro desse controle do IE, eu posso digito bem e vejo qualquer caractere não-ASCII que eu queira.

Eu gostaria de saber se há um problema com minha configuração mono ou mesmo se é um bug conhecido; O VB.Net é supostamente compatível com Unicode, mas eu não sei nada sobre a capacidade Unicode dos controles padrão que ele usa.

Então, se você puder me ajudar, por favor, informe: o que eu posso fazer no lado do Ubuntu para remediar a situação?

    
por ΤΖΩΤΖΙΟΥ 03.09.2010 / 00:32

1 resposta

2

Eu assumo que o aplicativo VB.NET está usando o material .NET GUI da Microsoft e não as ligações Gtk ou Qt para .NET? Apenas supondo, mas talvez o problema esteja relacionado ao fato de que o Windows (e talvez o .NET também?) Usa o UCS-2 (ou UTF-16?) E (a maioria) aplicativos Xorg usam / esperam o UTF-8?

De qualquer forma, parece que há um bug em algum lugar e, como você diz, algo é convertido uma vez demais ...

    
por JanC 03.09.2010 / 13:48