Ответ 1
Твой путь правильный. В CF нет поддержки \n или\r. Из Live Docs
- Chr (10) возвращает символ перевода строки
- Chr (13) возвращает символ возврата каретки
- Двухсимвольная строка Chr (13) и Chr (10) возвращает новую строку Windows
В настоящее время я помещаю строки в строки одним из этих двух способов:
<cfset someStr="This is line 1" & Chr(10) & "This is line 2" & Chr(10) & "This is line 3" />
ИЛИ
<cfset NL=Chr(10) />
<cfset someStr="This is line 1#NL#This is line 2#NL#This is line 3" />
Есть ли что-то более похожее на способ Java/С++? Что-то вроде этого я имею в виду:
<cfset someStr="This is line 1\nThis is line 2\nThis is line 3" />
Твой путь правильный. В CF нет поддержки \n или\r. Из Live Docs
- Chr (10) возвращает символ перевода строки
- Chr (13) возвращает символ возврата каретки
- Двухсимвольная строка Chr (13) и Chr (10) возвращает новую строку Windows
Если вы занимаетесь платформенно-независимой разработкой, вы можете сделать:
<cfset NL = CreateObject("java", "java.lang.System").getProperty("line.separator")>
Например, в вашем application.cfm/cfc
или где-то еще высоком уровне и используйте это.
i использую это:
<cfset br = "#chr(13)##chr(10)#">
<cfset someStr="This is line 1#br#This is line 2#br#This is line 3" />
Не прямо в CF, я оставлю его кураторам CF-Java, чтобы сказать, можете ли вы использовать Java-метод непосредственно в CF var для достижения того, чего вы хотите, но...
Вы можете использовать cfsavecontent, чтобы поместить естественные разрывы строк в:
<cfsavecontent variable="someStr">
This is line 1
This is line 2
This is line 3
</cfsavecontent>
Затем проверьте его:
<cfoutput>
<pre>#Trim(someStr)#</pre>
</cfoutput>
Обратите внимание, что Trim() существует, чтобы избавиться от первого и последнего разрывов строк, если вы не хотите их.
Мне было интересно, будет ли что-то вроде этого работать:
<cfset str = CreateObject("java", "java.lang.String").init("Line 1\nLine 2\nLine 3")>
<cfoutput>
<pre>#str#</pre>
</cfoutput>
Увы, нет: O (
CF8 отформатировал cfmail с фидами строк и без добавления чего-либо. Похоже, что Adobe предоставит что-то СПЕЦИФИЧНО о "почему" и о простой работе. ... Jurisdictionary
Я искал способ вывести новую строку в <cfscript>
, поэтому я решил оставить свой ответ для всех, кто поступил подобным образом:
writeDump(variable); // writeDump will not produce a new line.
writeOutput("<br>"); // you have to use writeOutput.
writeOutput
добавляется к потоку вывода страницы как html, поэтому вам нужно написать html для его вывода (это означает, что вы также можете включить
добавить пробелы для отступа).