使用Tiny Editor插入内容前端出现随机rn字符该如何解决?
异常字符“rn”显示问题解决方案
你遇到的rn字符本质是Windows平台标准换行符\r\n在转义处理异常时,转义符\丢失后残留的明文内容,该问题和数据库字符集、字段类型无关,可按以下步骤排查解决:
1. 后端PHP层处理(最推荐)
在你把商品数据存入$categories数组前,单独处理description字段,直接把换行符转换为HTML可识别的换行标签,同时避免转义异常:
// 放到while ($item = mysqli_fetch_assoc($result))循环内,处理完其他字段后添加 // 方案1:直接替换所有换行符为<br>标签 $item['description'] = str_replace(["\r\n", "\r", "\n"], '<br>', $item['description']); // 方案2:如果需要同时转义其他HTML特殊字符防止XSS风险,用nl2br结合htmlspecialchars $item['description'] = nl2br(htmlspecialchars($item['description']));
同时排查你的PHP代码中是否对商品描述字段调用了stripslashes()之类的移除转义符的函数,这类函数会把\r\n的反斜杠移除,直接生成rn字符。
2. 前端Vue层处理
如果不方便修改后端代码,可在前端渲染前处理字段内容:
// 拿到后端返回的商品数据后,遍历处理每个item的description item.description = item.description.replace(/\r\n|\r|\n|rn/g, '<br>')
3. Tiny Editor配置优化
调整编辑器初始化参数,让编辑器在保存时就直接把换行转换为HTML标签,避免纯换行符存入数据库:
tinymce.init({ // 其他原有配置保留,新增以下参数 forced_root_block: 'p', remove_linebreaks: false, convert_newlines_to_brs: true })
内容的提问来源于stack exchange,提问作者Team Thunder
相关产品推荐
相关产品推荐

