我是.net c#编程的新手,我需要将远程xml文件读入数据集并使用数据集创建水晶报告。
到目前为止一切正常,除了一些Unicode字符在水晶报表查看器中显示不正确
这是加载包含unicode的xml文件的正确方法吗?
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"?>
修改: -
这是我正在谈论的问题。这是与sinhala unicode字体
xml文件中的文本显示在下面
水晶报告查看器显示在文本下方
此致
答案 0 :(得分:1)
通常我总是尝试使用我的编码类型,所以我会这样做:
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);
}
}
请注意,unicode可以使用不同的格式编码,UTF-8,UTF-16等。您将看到的主要是UTF-8。在.NET中,编码类型Encoding.Unicode是UTF-16