DELPHI: EEncodingError - pagina di codice non valido su Windows XP Embedded
-
26-09-2019 - |
Domanda
Ciao ho un applicazione che funziona bene su Windows Xp pro, finestre Visa, Windows 7
Ma quando l'eseguo su Windows XP Embedded non funziona e dà il seguente errore:
EEncodingError - pagina di codice non valido
Quando l'applicazione è stata fatta con Delphi 2006 funziona su Windows XP Embedded
** quando l'applicazione è fatto con Delphi 2010 lo fa ** non funziona su Windows XP Embedded ****
Soluzione
Gli usi di proprietà TEncoding.ASCII
tabella codici 20127, che non è installato su XP Embedded per impostazione predefinita. È necessario installarlo manualmente. La classe TEncoding
non esiste in D2006.
Stai usando Indy 10, per caso? Esso utilizza TEncoding.ASCII
per impostazione predefinita per le sue codifiche stringa. è stato conosciuto questo errore esatto che si verificano quando si utilizza Indy su XP Embedded.
Altri suggerimenti
Quando si pianta? All'avvio, o più tardi?
Questo errore si trova solo in un posto, nel RTL, almeno. In SysUtils, constructor TMBCSEncoding.Create(CodePage, MBToWCharFlags, WCharToMBFlags: Integer);
, che viene chiamato da TEncoding per impostare codifiche stringa.
Ci vuole il parametro CodePage
e chiama GetCPInfo su di esso, e se non riesce solleva questa eccezione. Dalla documentazione MSDN e il messaggio di eccezione, quello che sta probabilmente accadendo è che la vostra applicazione sta cercando di usare le stringhe da un set di caratteri multibyte che non è supportata da XP Embedded. State facendo qualcosa di insolito con le stringhe o il lavoro di testo in lingue straniere che utilizzano un alfabeto diverso?