阅读 XML 嵌入了阿拉伯语数据的 c#

Read XML with Arabic data embedded c#

我正在尝试加载一个包含 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)));

给我一个 "Invalid URI: Uri string is too long" 错误。

使用这个:

XmlDocument xd = new XmlDocument();
xd.Load(tbxTSFileName.Text);

给出错误"Invalid character in the given encoding. Line 9 position 40"。

您的 reader 需要使用 utf-8,如文档本身所示。理想情况下,您会使用 XML reader,它会自行处理指定的编码。

阅读您正在调用的方法的文档。

XDocument.Load 采用 URL,而不是 XML 字符串。

你想要XDocument.Parse.