CSQuery を使用してアラビア語の Web サイトを解析しています。text() 関数を使用するとテキストがそのまま返されますが、html() 関数を使用すると html エンコーディングが使用されます。たとえば、これは私のhtmlタグです:
<div>تعلن عن إرسالها مركبة فضائية للمريخ قريباً جداً</div>
私が使用するとき:
dom["div"].Text();
次のように返されます。ただし、使用する場合:
dom["div"].Html();
戻り値:
&#1578;&#1593;&#1604;&#1606; &#1593;&#1606; &#1573;&#1585;&#1587;&#1575;&#1604;&#1607;&#1575; &#1605;&#1585;&#1603;&#1576;&#1577; &#1601;&#1590;&#1575;&#1574;&#1610;&#1577; &#1604;&#1604;&#1605;&#1585;&#1610;&#1582; &#1602;&#1585;&#1610;&#1576;&#1575;&#1611; &#1580;&#1583;&#1575;&#1611;
問題は、エンコードせずに実際のテキストを保持しながら Html を使用するにはどうすればよいかということです。セレクタ タグ内の既存のタグを取得するには、Html() 関数が必要です。
編集: 元の html ページのコンテンツ タイプは次のとおりです。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">