0
私はアラビア語でWebサイトを解析するためにCSQueryを使用しています。 text()関数を使用すると、そのままテキストが返されますが、html()関数を使用するとhtmlエンコーディングが使用されます。例えばこれは私のhtmlタグである:CSQuery非英語のテキストの解析
<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">
なぜ 'Text()'と 'Html()'の戻り値に違いはありませんか? –
@FirstStep:ブラウザが正しくフォーマットされていないため、自動的にエンコードするためです。 :) –
なぜ正しくエンコードされていないのですか?これは基本的なutf-8エンコーディングですか? – Lamar