Mam proste XmlReader:Jak zmienić kodowanie znaków XmlReader
XmlReader r = XmlReader.Create(fileName);
while (r.Read())
{
Console.WriteLine(r.Value);
}
Problemem jest to plik XML ISO-8859-9
znaków w nim, co czyni XmlReader rzut „Invalid character in the given encoding.
” wyjątek. Mogę rozwiązać ten problem dodając na początku linię <?xml version="1.0" encoding="ISO-8859-9" ?>
, ale chciałbym rozwiązać to w inny sposób, na wypadek, gdyby nie można było zmodyfikować pliku źródłowego. Jak mogę zmienić kodowanie XmlReader?
Tak, nie sądzę, że zmiana kodowania StreamReadera będzie działać ... – Noldorin
Po prostu próbowałem, to zadziałało. Dzięki! – dstr
Należy uważać, program do przesyłania strumieniowego nie jest zamknięty po zakończeniu wyrażenia using przy użyciu składni takiej jak ta. Bezpiecznym sposobem byłoby: 'using (StreamReader sr = new StreamReader (fileName, Encoding.GetEncoding (" ISO-8859-9 "))) przy użyciu (XmlReader r = XmlReader.Create (sr)) {...}' –