Как прочитать данные XML в DataSet в C #? - PullRequest
1 голос
/ 26 января 2012

Я новичок в программировании .net c #, и мне нужно прочитать удаленный XML-файл в набор данных и создать отчет Crystal с набором данных.

пока все работает нормально, за исключением некоторых символов Unicode, отображаемых некорректно в Crystal Report Viewer

так это правильный способ загрузки XML-файла, который содержит Unicode?

string reportDataPath = "http://domain/test/data.xml";

DataSet reportData = new DataSet();
try
{
  reportData.ReadXml(reportDataPath);
}
catch
{

}

для установки источника

report = new SampleReport();
report.SetDataSource(reportData);

в кодировке XML-файла, например

<?xml version="1.0" encoding="UTF-8"?>

редактирование: -

это проблема, о которой я говорю. это с шрифтом синхала Unicode

текст в xml файле показан ниже

enter image description here

Crystal Report Viewer показывает ниже текста

enter image description here

Привет

1 Ответ

1 голос
/ 26 января 2012

Обычно я всегда стараюсь быть явным с моими типами кодирования, поэтому я бы делал это так:

System.Data.DataSet reportData = new System.Data.DataSet();
System.Net.WebRequest request= System.Net.WebRequest.Create(reportDataPath);

using (System.Net.WebResponse response =   (System.Net.HttpWebResponse)request.GetResponse()) {
    using (System.IO.StreamReader sr = new System.IO.StreamReader(response.GetResponseStream(), Encoding.UTF8)) {
        reportData.ReadXml(sr);
    }
}

Просто помните, что юникод может быть закодирован с использованием разных форматов, UTF-8, UTF-16 и т. Д. В основном вы увидите UTF-8. В .NET тип кодировки Encoding.Unicode - это UTF-16

...