不应该会发生回车符丢失的呀. 对于多行文本框的提交, 后台得到的内容里应该包括它的格式的呀. 比如说想在入库前就对提交的内容进行格式固定可以用: <% Function coder(str) Dim i If IsNull(str) Then : coder="" : Exit Function : End If For i = 1 to Len(str) Select case mid(str,i,1) Case "<" : coder = coder &"<" Case ">" : coder = coder &">" Case "&" : coder = coder &"&" Case chr(9) : coder = coder &" " Case chr(13) : coder = coder &"<br>" Case chr(32) : coder = coder &" " Case chr(34) : coder = coder &""" Case chr(39) : coder = coder &"'" Case Else : coder = coder & mid(str,i,1) End Select Next End Function %>
显示时用这样一个函数就行了 <script language="vbscript"> <!-- function HtmlCode(fString) if fString<>"" then fString = replace(fString, ">", ">") fString = replace(fString, "<", "<") fString = Replace(fString, CHR(32), " ") fString = Replace(fString, CHR(13), "") fString = Replace(fString, CHR(10) & CHR(10), "</P><P>") fString = Replace(fString, CHR(10), "<BR>") end if HtmlCode = fString end function --> </script> 如果你要显示a的话function HtmlCode(a) 这样显示就对了
不好意思,上面那个显示时是这样的:HtmlCode(a) 上面写错了 试试看
PHP: function HtmlCode($content) { $content = htmlspecialchars($content); $content = str_replace("\n", "<br>", $content); $content = str_replace("\n\n", "<p>", $content); $content = str_replace(" ", " ", $content); return $content; } <?php echo HtmlCode($row["content"])?> ASP: function HTMLEncode(fString) if not isnull(fString) then fString = replace(fString, ">", ">") fString = replace(fString, "<", "<") fString = Replace(fString, CHR(32), " ") fString = Replace(fString, CHR(34), """) fString = Replace(fString, CHR(39), "'") fString = Replace(fString, CHR(13), "") fString = Replace(fString, CHR(10) & CHR(10), "</P><P> ") fString = Replace(fString, CHR(10), "<BR> ") HTMLEncode = fString end if end function response.write HTMLEncode(rs("content"))
textarea 里的自动换行是没有换行符的.
我用php试了一下,提交的textarea内容确实不能得到回车啊,硬回车也得不到,起码php的echo不能,chr(13)只是一个空格,必须用nl2br函数转一下
后台用JS可以用(\r\n) VBS可以用(VBCrLf)得到多行文本框里的回车换行符的呀.
1:首先在textarea所在的页面里采用javascript函数将textarea里的内容根据回车换行符分割成一个数组,然后将数组内的各个数据首尾相连,之间采用"|"分割区分,由此组合成一个新字符串。
2:接收页面再根据"|"分割符进行转化。
这样可以吗?具体如何写代码呢?
比如说想在入库前就对提交的内容进行格式固定可以用:
<%
Function coder(str)
Dim i
If IsNull(str) Then : coder="" : Exit Function : End If
For i = 1 to Len(str)
Select case mid(str,i,1)
Case "<" : coder = coder &"<"
Case ">" : coder = coder &">"
Case "&" : coder = coder &"&"
Case chr(9) : coder = coder &" "
Case chr(13) : coder = coder &"<br>"
Case chr(32) : coder = coder &" "
Case chr(34) : coder = coder &"""
Case chr(39) : coder = coder &"'"
Case Else : coder = coder & mid(str,i,1)
End Select
Next
End Function
%>
<script language="vbscript">
<!--
function HtmlCode(fString)
if fString<>"" then
fString = replace(fString, ">", ">")
fString = replace(fString, "<", "<")
fString = Replace(fString, CHR(32), " ")
fString = Replace(fString, CHR(13), "")
fString = Replace(fString, CHR(10) & CHR(10), "</P><P>")
fString = Replace(fString, CHR(10), "<BR>")
end if
HtmlCode = fString
end function
-->
</script>
如果你要显示a的话function HtmlCode(a)
这样显示就对了
上面写错了
试试看
PHP:
function HtmlCode($content) {
$content = htmlspecialchars($content);
$content = str_replace("\n", "<br>", $content);
$content = str_replace("\n\n", "<p>", $content);
$content = str_replace(" ", " ", $content);
return $content;
}
<?php echo HtmlCode($row["content"])?>
ASP:
function HTMLEncode(fString)
if not isnull(fString) then
fString = replace(fString, ">", ">")
fString = replace(fString, "<", "<") fString = Replace(fString, CHR(32), " ")
fString = Replace(fString, CHR(34), """)
fString = Replace(fString, CHR(39), "'")
fString = Replace(fString, CHR(13), "")
fString = Replace(fString, CHR(10) & CHR(10), "</P><P> ")
fString = Replace(fString, CHR(10), "<BR> ")
HTMLEncode = fString
end if
end function
response.write HTMLEncode(rs("content"))