動態構建 HTML 字符串賦值給 `webBrowser1.DocumentText`,字符串內部包含雙引號(如屬性值),導致字符串截斷或解析錯誤。
// 錯誤:內部雙引號與外層字符串邊界衝突
string html = "<div class=\"box\">內容</div>";
webBrowser1.DocumentText = html;
將雙引號替換為 `"`,瀏覽器渲染時自動還原。
string rawHtml = "<div class=\"box\">內容</div>";
string safeHtml = rawHtml.Replace("\"", """);
webBrowser1.DocumentText = safeHtml;
框架級方法,自動處理所有特殊字符(`<` `>` `&` `"` `'`)。
using System.IO;
using System.Web.UI;
public string EncodeHtml(string input) {
using (var sw = new StringWriter())
using (var writer = new HtmlTextWriter(sw)) {
writer.WriteEncodedText(input);
return sw.ToString();
}
}
// 使用
string encoded = EncodeHtml("公式\" a > b \"");
webBrowser1.DocumentText = $"\"{encoded}\""; // 結果: "公式" a > b ""