Ho un semplice XmlReader:Come cambiare carattere codifica dei XmlReader
XmlReader r = XmlReader.Create(fileName);
while (r.Read())
{
Console.WriteLine(r.Value);
}
Il problema è che il file XML ha ISO-8859-9
caratteri in esso, il che rende XmlReader tiro "Invalid character in the given encoding.
" eccezione. Posso risolvere questo problema aggiungendo la riga <?xml version="1.0" encoding="ISO-8859-9" ?>
all'inizio, ma mi piacerebbe risolverlo in un altro modo nel caso non riesca a modificare il file sorgente. Come posso cambiare la codifica di XmlReader?
Sì, non credo che solo la modifica della codifica di StreamReader funzionerà ... – Noldorin
Ho appena provato, questo ha funzionato. Grazie! – dstr
Attenzione, lo streamreader non viene chiuso dopo la fine dell'istruzione 'using' quando si usa una sintassi come questa. Il modo sicuro sarebbe: 'using (StreamReader sr = new StreamReader (fileName, Encoding.GetEncoding (" ISO-8859-9 "))) utilizzando (XmlReader r = XmlReader.Create (sr)) {...}' –