Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Syntax 如何在ColdFusion中以字符串形式编写换行符?_Syntax_Coldfusion_Newline - Fatal编程技术网

Syntax 如何在ColdFusion中以字符串形式编写换行符?

Syntax 如何在ColdFusion中以字符串形式编写换行符?,syntax,coldfusion,newline,Syntax,Coldfusion,Newline,目前,我通过以下两种方法之一将新行放入字符串中: <cfset someStr="This is line 1" & Chr(10) & "This is line 2" & Chr(10) & "This is line 3" /> 或 还有什么更像Java/C++的方式吗?我的意思是更像这样: <cfset someStr="This is line 1\nThis is line 2\nThis is line 3" />

目前,我通过以下两种方法之一将新行放入字符串中:

<cfset someStr="This is line 1" & Chr(10) & "This is line 2" & Chr(10) & "This is line 3" />


还有什么更像Java/C++的方式吗?我的意思是更像这样:

<cfset someStr="This is line 1\nThis is line 2\nThis is line 3" />

不是直接在CF中,我将让CF Java的朋友们来决定是否可以直接在CF var上使用Java方法来实现您想要的,但是

您可以使用cfsavecontent在以下位置放置自然换行符:

<cfsavecontent variable="someStr">
This is line 1
This is line 2
This is line 3
</cfsavecontent>

这是一号线
这是2号线
这是3号线
然后检查以下各项:

<cfoutput>
<pre>#Trim(someStr)#</pre>
</cfoutput>

#修剪(someStr)#

请注意,如果您不需要,Trim()可以消除第一个和最后一个换行符。

您的方法是正确的。不支持来自的CF中的\n或\r

  • Chr(10)返回换行符
  • Chr(13)返回一个回车字符
  • 两个字符串Chr(13)&Chr(10)返回一个Windows换行符
我用这个:

<cfset NL = CreateObject("java", "java.lang.System").getProperty("line.separator")>

如果您喜欢独立于平台的开发,您可以:

<cfset str = CreateObject("java", "java.lang.String").init("Line 1\nLine 2\nLine 3")>

<cfoutput>
<pre>#str#</pre>
</cfoutput>


例如,在您的
应用程序.cfm/cfc
或其他高级应用程序中使用它。

我想知道这样做是否有效:

writeDump(variable); // writeDump will not produce a new line.
writeOutput("<br>"); // you have to use writeOutput.

#str#

唉,没有:O(

CF8格式的cfmail,带换行符,不添加任何内容。 似乎Adobe会提供一些关于“为什么”的具体信息和一个简单的解决方法。
我正在寻找一种在
中输出新行的方法,所以我想我会把答案留给其他以类似方式到达的人:

writeDump(变量);//writeDump不会生成新行。
writeOutput(“
”);//您必须使用writeOutput。

作为html附加到页面输出流,因此您需要编写html以将其输出(这意味着您还可以包含
以添加缩进空间)。

这会将CF字符串馈送到.init()。而CF字符串不理解“\n”。这是一种我喜欢称为“罐头中的开罐器”的问题:-)Marc,让我们不要引号和##s-你会从我冰冷、死气沉沉的手上撕下引号和敲打符号,内森!那很酷。我是CF新手,所以我还没有真正挖掘底层java代码的潜力……我只使用它,说“我们将只在Windows上运行”很容易,但如果你因为懒惰而不得不更改数百行分散的代码,那将是一个令人悲伤的日子。请注意,Chr(13)和Chr(10)在简单的环境中不起作用。为了让换行符显示出来,您需要在javascript或其他语言中使用它。我发现这是一种有趣的方式。它在cfoutput中对我来说效果很好。当然,它不会在html中创建一个中断,因为html将其视为另一个空白,但如果您使用视图源代码,您将看到中断。也许你只是需要一个
?可能。我只是想报告一下,如果人们像我一样对此有问题,他们应该试着将其放入javascript或其他东西中,看看这是否能解决问题。
<cfset str = CreateObject("java", "java.lang.String").init("Line 1\nLine 2\nLine 3")>

<cfoutput>
<pre>#str#</pre>
</cfoutput>
writeDump(variable); // writeDump will not produce a new line.
writeOutput("<br>"); // you have to use writeOutput.