ColdFusion EncodeForHTML和换行符

时间:2017-01-22 23:41:07

标签: replace newline coldfusion-10 html-encode carriage-return

在ColdFusion中使用EncodeForHTML时,换行符(\ n)和回车符(\ r)转换为什么字符?我已经尝试了我能想到的所有内容(或在线查找),但在编码后我无法找到我需要在REReplace语句中使用以转换为break(br)标记的内容(我需要将其用于显示目的)。

我想做的是像

#REReplace(EncodeForHTML(myVar), "html encoded newline etc chars", "<br />", "all")#

然而,因为我无法弄清楚新行和回车被转换为什么唯一的方法我可以让它在EncodeForHTML之前和之后做一个REReplace,这似乎不是很明智或有效。例如:

#REReplace(EncodeForHTML(REReplace(myVar, "\r\n|\n\r|\n|\r", "<br />", "all")), "&lt;br &##x2f;&gt;", "<br />", "all")#

我正在使用CF 10。

1 个答案:

答案 0 :(得分:2)

\ n被编码为&#xa;

\ r \ n被编码为&#xd;

因此,以下简化代码现在可以使用:

#REReplace(EncodeForHTML(myVar), "&##xa;&##xd;|&##xd;&##xa;|&##xa;|&##xd;", "<br />", "all")#