如何在Power Automate Flow中将CRLF替换为<br>适配HTML邮件
问题分析
你尝试的5种替换CRLF为<br>的方法均未生效,核心问题集中在:
- 错误匹配了换行符的实际格式(比如仅替换
\n而忽略配套的\r) - 直接使用未解码的URL编码字符串(
%0D%0A)作为匹配项,而非实际换行符 - 未区分字段类型:如果是增强型富文本,存储的是HTML格式而非纯文本CRLF,手动替换反而会破坏原有结构
你的尝试中的具体问题:
- 方法1:
strCRLF变量存储的是%0D%0A字符串,并非实际换行符,直接匹配无法生效 - 方法3:错误将字符串
CRLF作为匹配目标,实际内容中不存在该文本 - 方法4:仅替换
\n,但SharePoint普通多行文本的换行是\r\n组合,残留的\r会导致换行无效 - 方法5:
decodeURIComponent(%0D%0)存在语法错误,缺少A,无法正确解码换行符
正确解决方法
情况1:字段为「普通多行文本」
使用以下表达式替换完整的\r\n换行符为<br>:
replace(variables('strMaterials'), concat(char(13), char(10)), '<br>')
或者通过解码URL编码的换行符实现:
replace(variables('strMaterials'), decodeUriComponent('%0D%0A'), '<br>')
验证步骤:
- 在Flow中添加「Compose」动作,输出
strMaterials变量内容,确认实际换行符为\r\n - 将替换后的结果插入HTML邮件内容,确保邮件已开启HTML模式
情况2:字段为「增强型富文本」
无需手动替换换行符,直接引用字段内容即可。增强型富文本本身存储的是HTML格式,已包含<br>或<p>等换行标记,直接插入HTML邮件就能保留原有格式。
示例:
@{items('Apply_to_each')?['YourRichTextFieldName']}
内容的提问来源于stack exchange,提问作者Greg McAllister
相关产品推荐
相关产品推荐

