Currently I\'m putting newlines in strings through one of these two methods:
I was wondering if something like this would work:
<cfset str = CreateObject("java", "java.lang.String").init("Line 1\nLine 2\nLine 3")>
<cfoutput>
<pre>#str#</pre>
</cfoutput>
Alas no :O(
I was looking for a way to output a new line in <cfscript>
, so I figured I'd leave my answer for anyone else who arrived in a similar fashion:
writeDump(variable); // writeDump will not produce a new line.
writeOutput("<br>"); // you have to use writeOutput.
writeOutput appends to the page-output stream as html, so you need to write html for it to output (this means you can also include
to add spaces for indentation).
Not directly in CF, I'll leave it to the CF-Java dudes to say whether you can use a Java method directly on a CF var to achieve what you want, but...
You could use cfsavecontent to put natural line breaks in:
<cfsavecontent variable="someStr">
This is line 1
This is line 2
This is line 3
</cfsavecontent>
Then check it with:
<cfoutput>
<pre>#Trim(someStr)#</pre>
</cfoutput>
Note that the Trim() is there to get rid of the first and last line breaks if you don't want them.
If you are into platform-independent development, you can do:
<cfset NL = CreateObject("java", "java.lang.System").getProperty("line.separator")>
For example, in your application.cfm/cfc
or somewhere else high-level and use that.
CF8 formatted cfmail with line feeds and without adding anything. Seems like Adobe would provide something SPECIFIC about "why" and a simple work-around. ... Jurisdictionary
Your way is correct. There is no support for \n or \r in CF. From the Live Docs
- Chr(10) returns a linefeed character
- Chr(13) returns a carriage return character
- The two-character string Chr(13) & Chr(10) returns a Windows newline