CSQuery 解析非英文文本
CSQuery Parsing non-english text
我正在使用 CSQuery 解析阿拉伯语网站。当我使用 text() 函数时,它 returns 按原样显示文本,但是当我使用 html() 函数时,它使用 html 编码。例如,这是我的 html 标签:
<div>تعلن عن إرسالها مركبة فضائية للمريخ قريباً جداً</div>
当我使用:
dom["div"].Text();
它 returns:“تعلن عن إرسالها مركو وضائي٩ للمريخ ₩”。
但是当我使用:
dom["div"].Html();
它returns:
&#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">
我最终使用 System.Net.WebUtility.HtmlDecode() 来解码 Html() 函数的输出。
如果您使用 WebClient 抓取 HTML 页面(我就是这种情况),这应该对您有所帮助
var client = new WebClient();
client.Encoding = System.Text.Encoding.UTF8;
我正在使用 CSQuery 解析阿拉伯语网站。当我使用 text() 函数时,它 returns 按原样显示文本,但是当我使用 html() 函数时,它使用 html 编码。例如,这是我的 html 标签:
<div>تعلن عن إرسالها مركبة فضائية للمريخ قريباً جداً</div>
当我使用:
dom["div"].Text();
它 returns:“تعلن عن إرسالها مركو وضائي٩ للمريخ ₩”。 但是当我使用:
dom["div"].Html();
它returns:
&#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">
我最终使用 System.Net.WebUtility.HtmlDecode() 来解码 Html() 函数的输出。
如果您使用 WebClient 抓取 HTML 页面(我就是这种情况),这应该对您有所帮助
var client = new WebClient();
client.Encoding = System.Text.Encoding.UTF8;