2010-03-10 21 views

risposta

5

o il parser è fissata per UTF-8, anche se il file è codificato in caso contrario, o il file è dichiarata come usando UTF-8, ma in realtà non è così.

18

più comunemente è a causa di alimentazione ISO-8859-x (Latin-x, come Latin-1) ma parser che pensa che sta ottenendo UTF-8. Alcune sequenze di caratteri Latin-1 (due caratteri consecutivi con accenti o dieresi) formano qualcosa che non è valido come UTF-8, e in particolare tale basato su prima b Sì, il secondo byte ha bit inaspettati di ordine superiore.

Questo può facilmente verificarsi quando un processo discariche fuori XML utilizzando latino-1, ma sia dimentica di uscita XML dichiarazione (nel qual caso XML parser deve imposterà UTF-8, secondo XML specifiche), o sostiene è UTF-8 anche quando non lo è.

+0

Qualche suggerimento su come risolverlo? Mi sono imbattuto in questo problema durante la definizione di un'attività ant che utilizza la libreria XMLTask di terze parti. – AgentKnopf

+0

Questo è difficile allora; in caso contrario, solitamente viene creato un InputStreamReader per la codifica specifica, quindi assegnarlo al parser XML. Ma non sono sicuro di cosa fare con Ant ... a parte riparare il file XML stesso, se possibile. – StaxMan

+0

Ho capito il problema - In uno dei miei xml ho avuto un Umlaut (ä, ö, ü) che in qualche modo si è rovinato quando ho convertito il file xml in diversi formati. Una volta rimosso Umlaut, ha funzionato. – AgentKnopf

2

Si potrebbe provare a cambiare la codifica dei caratteri predefinita utilizzata da String.getBytes() in utf-8. Usa l'opzione VM -Dfile.encoding = utf-8.

2

Ho avuto lo stesso problema. Il mio problema era che ho creato un nuovo file XML con jdom e il file FileWriter (xmlFile). FileWriter non è stato in grado di creare un file UTF-8. Invece di usare FileOutputStream (xmlFile) risolto.

1

Per coloro che continuano a commettere questo errore.

dal UTF-8 è in uso del check out il documento XML per tutte le lettere latine o giù di lì: ho avuto lo stesso problema e il motivo è che ho avuto questo:

<n:name>Åke Jógvan Øyvind</n:name> 

Spero che questo aiuti

0

Ho avuto lo stesso problema anche quando provavo ad importare il mio file .xml nel mio strumento java. E ho trovato una buona soluzione per questo: 1. Apri il file .xml con Notepad ++ quindi salva il file .xml come file .rtf. Quindi apri questo file nell'applicazione WordPad. 2. Salvare il file .rtf come file .txt, quindi aprirlo con Blocco note e salvarlo nuovamente come file .xml. Quando si salva in Blocco note, vicino alla fine della finestra pop-up, assicurarsi di scegliere l'opzione "Codifica: UTF-8". Ha funzionato per il mio, spero che sia utile anche per il tuo.

Problemi correlati