You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WebView2 ExecuteScriptAsync返回编码HTML,如何获取纯HTML?

WebView2获取HTML出现字符编码的原因及解决方法

原因

ExecuteScriptAsync方法执行JavaScript后,返回的是JSON格式的字符串。当你通过JS获取document.documentElement.outerHTML时,JS引擎会自动将HTML中的特殊字符(比如<、>、双引号)转义成Unicode转义序列(例如\u003C对应<),同时换行符会被转为\n——这么做是为了保证返回的字符串符合JSON语法规范,避免出现语法错误。

解决方法

需要将转义后的JSON字符串还原为原始HTML,以下是两种常用的C#实现方式:

方法1:使用System.Text.Json(.NET Core/.NET 5+推荐)

using System.Text.Json;

// 获取转义后的HTML字符串
string encodedHtml = await webView1.ExecuteScriptAsync("document.documentElement.outerHTML");
// 还原为原始HTML
string rawHtml = JsonSerializer.Deserialize<string>(encodedHtml);

方法2:使用HttpUtility(需引用System.Web.dll)

using System.Web;

// 获取转义后的HTML字符串
string encodedHtml = await webView1.ExecuteScriptAsync("document.documentElement.outerHTML");
// 还原为原始HTML
string rawHtml = HttpUtility.JavaScriptStringDecode(encodedHtml);

这两种方法都会自动解析转义序列,将\u003C、\n等转义字符还原为对应的原始HTML字符,最终得到未编码的纯HTML内容。

内容的提问来源于stack exchange,提问作者Extreme_Tough

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 19:42:04