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

换行转<br/>与HTML特殊字符编码在Word导出时的冲突如何解决?

冲突解决方法
  • 核心问题:两个处理逻辑的执行顺序错误。先将换行替换为<br/>再执行HTML编码的操作,会将<br/>标签中的<、>符号一并编码为&lt;、&gt;,最终变成无法被HTML解析的普通文本。
  • 最优解决方案:调整两个逻辑的执行顺序,先对原始文本做HTML特殊字符编码,再将编码后文本中的换行符替换为<br/>标签,此时生成的<br/>不会被二次编码,可正常生效。
    修正后代码示例:
if (!String.IsNullOrEmpty(dataValue))
{
    // 先编码所有HTML特殊字符
    dataValue = WebUtility.HtmlEncode(dataValue);
    // 再替换换行符为<br/>标签
    dataValue = dataValue.Replace("\r\n", "<br/>").Replace("\n", "<br/>");
}

table.Add("<%"+ data.TagName + "%>", dataValue);

// 后续模板替换逻辑无需重复编码
string character = (string)table[tag];
subject = subject.Replace(tag, character);
body = body.Replace(tag, character);
  • 兼容方案:如果受现有架构限制无法调整全局处理顺序,可在HTML编码完成后手动还原被编码的换行标签:
string character = (string)table[tag];
character = WebUtility.HtmlEncode(character);
// 还原被编码的<br/>标签
character = character.Replace("&lt;br/&gt;", "<br/>");
subject = subject.Replace(tag, character);
body = body.Replace(tag, character);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:21:00