2016-05-12 15 views
-1

ASCIIテキストとアラビア文字の混在したXMLファイルを読み込もうとしています。ここではトップスニペットです:アラビア語のデータが埋め込まれたXMLを読み込みます。C#

<?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#のツリービューオブジェクトにこれをアップロードしたいが、私はXDocumentかのXMLDocumentへのロードに問題が生じています。

これを使用して

XDocument xd = XDocument.Load(File.ReadAllText(tbxTSFileName.Text)); 

または

XDocument xd = XDocument.Load(File.ReadAllText(tbxTSFileName.Text, Encoding.GetEncoding(874))); 

は私に与える:エラー "無効なURI URI文字列が長すぎます"。これを使用する

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

は、 "与えられたエンコーディングに無効な文字ライン9位40" の誤差を与えます。

答えて

2

呼び出しているメソッドのドキュメントを参照してください。

XDocument.Loadは、XML文字列ではなくURLを使用します。

あなたはXDocument.Parseが必要です。

0

あなたの読者は、ドキュメント自体に示されているように、utf-8を使用する必要があります。理想的には、XMLリーダーを使用し、指定されたエンコード自体を使用することになります。

関連する問題