阅读 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
.
我正在尝试加载一个包含 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
.