我正在尝试加载包含ASCII文本和阿拉伯字符混合的XML文件。这是最高代码段:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ar_EG">
<context>
<message>
<location filename="ui/aboutdialog.cpp" line="90"/>
<source>You have </source>
<translation type="unfinished">يوجد لديك</translation>
</message>
<message>
<location filename="ui/aboutdialog.cpp" line="90"/>
<source> launches left</source>
<translation type="unfinished">عدد التشغيلات المتبقية</translation>
</message>
</context>
我想将它加载到C#TreeView对象中,但是我在加载到XDocument或XMLDocument时遇到了问题。
使用此:
XDocument xd = XDocument.Load(File.ReadAllText(tbxTSFileName.Text));
或
XDocument xd = XDocument.Load(File.ReadAllText(tbxTSFileName.Text, Encoding.GetEncoding(874)));
给我一个&#34;无效的URI:Uri字符串太长&#34;错误。
使用此:
XmlDocument xd = new XmlDocument();
xd.Load(tbxTSFileName.Text);
给出错误&#34;给定编码中的字符无效。第9行位置40&#34;。
答案 0 :(得分:2)
阅读您正在呼叫的方法的文档。
XDocument.Load
采用URL,而不是XML字符串。
您想要XDocument.Parse
。
答案 1 :(得分:0)
您的读者需要使用utf-8,如文档本身所示。理想情况下,您将使用XML阅读器,它将负责使用指定的编码本身。