I caratteri non ASCII vengono visualizzati come caselle nella casella di testo dell'applicazione VB.Net in Mono

4

Sto usando Ubuntu 9.10 (non posso aggiornarlo a causa del fatto che alcune applicazioni sono incompatibili con le versioni successive), con tutti gli aggiornamenti installati.

Un collega ha scritto un'applicazione VB.Net che sembra funzionare correttamente con Mono, tuttavia c'è un problema con i caratteri nelle caselle di testo: se non sono strettamente ASCII, vengono visualizzati come caselle (il tipico carattere di sostituzione di Windows).

All'inizio pensavo che fosse un problema con i caratteri greci (che usiamo); tuttavia, ho tentato di inserire alcuni caratteri occidentali accentati (come é, che è nella tipica codepage di Windows 1252 occidentale), e anche questi si presentavano come caselle, quindi non è strettamente un problema con il greco.

Ho tentato di digitare il greco in una casella di testo: la parola «Δοκιμή» (test). Ho quindi selezionato cosa ho digitato, premuto Ctrl-C, passato a un editor di testo nativo e premuto Ctrl-V. Il risultato è stato "ÎÎÎÎÎÎÎÎÎÎÎ", che è la parola greca piuttosto incasinato (credo che UTF-8 sia interpretato come Latin-1, lavoro molto con Unicode, quindi è facile riconoscere tali cose :) Tuttavia, se vuoi per verificare, avviare un interprete Python in un terminale con funzionalità UTF-8 e provare:

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

che è quello che ho digitato)

Ora l'applicazione incorpora anche un controllo di Internet Explorer; Mono lo emula bene (penso che usi un motore Gecko), e in una casella di testo all'interno di quel controllo IE, posso digitare bene e vedere qualsiasi carattere non ASCII che voglio.

Vorrei sapere se c'è un problema con la mia configurazione mono o anche se si tratta di un bug noto; VB.Net è presumibilmente compatibile con Unicode, ma non so nulla delle funzionalità Unicode dei controlli standard che usa.

Quindi, se puoi aiutarmi, ti preghiamo di avvisare: cosa posso fare da Ubuntu per rimediare alla situazione?

    
posta ΤΖΩΤΖΙΟΥ 03.09.2010 - 00:32

1 risposta

2

Suppongo che l'applicazione VB.NET stia utilizzando la GUI di Microsoft e non i collegamenti Gtk o Qt per .NET. Solo supposizioni, ma forse il problema è legato al fatto che Windows (e forse anche .NET?) Usa UCS-2 (o UTF-16?) E (la maggior parte) le applicazioni Xorg usano / aspettano UTF-8?

Comunque, sembra che ci sia un bug da qualche parte, e come dici tu, qualcosa viene convertito una volta di più ...

    
risposta data JanC 03.09.2010 - 13:48

Leggi altre domande sui tag