可否在这里提个ASP的问题?请进!(100分)

  • 主题发起人 microwave
  • 开始时间
M

microwave

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟用ASP做了一个在线新闻发布系统,可是却有一个大问题,当我把新闻贴上去后,在这
个输入框中是有段落的,段前也空了两格,然后存入数据库中,可是当从数据库中取出来贴到页
面上时所有的分段都没有了,全合到了一段,段前空格也没有了,这个问题当如何解决?
 
要进行字符转换
把如回车字符换成<BR> <P>之类的。
 
如何转换啊,有代码没有?
 
可以在段落前加上:
<p style='text-indent:24pt'>
根据字体适当调整参数“24”
也可如下:
<P>&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;
“&amp;amp;nbsp;”表示一个空格
注意<P>是可以不成对的,如果你想成对,在段落尾加上</p>
 
vbscript有replace()函数,替换vbcrlf为<br>,替换空格为&amp;nbsp;替换<>为&amp;qt;&amp;lt;等.
 
数据输入或输出时将特殊字符替换掉,用replace函数。
举例:替换掉输入的"<"和">"
ly=Replace(Request("ly"),"<","&amp;
lt;")
ly=Replace(ly,">","&amp;
gt;")
替换换行符
ly=Replace(ly,vbCrlf,"<br>")
替换空格
ly=Replace(ly," ","&amp;
nbsp;")
注意:只能用一次,最好在输入的时候将特殊字符替换掉,这样以后就不用再管了。
 
楼上的兄弟,我觉得最好是在显示时替换,这样不会改变原始数据,而且如果显示格式有变化
的话,直接改代码就可以了,或者要输出到其他地方,比如excel中,可以保证是原始数据.
 
 
将回车替换为<br>或者在新闻内容前后加上<pre></pre>
 
 
<%
function htmlencode(str)
on error resume next
dim result
dim l
if isnull(str) then
htmlencode=""
exit function
end if
l=len(str)
result=""
dim i
for i = 1 to l
select case mid(str,i,1)
'case "<"
'result=result+"&amp;lt;"
'case ">"
'result=result+"&amp;gt;"
case chr(34)
result=result+"&amp;quot;"
case "&amp;"
result=result+"&amp;amp;"
case "'"
result=result+"''"
case chr(13)
result=result+"<br>"
case chr(9)
result=result+"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"
case chr(32)
'result=result+"&amp;nbsp;"
if i+1<=l and i-1>0 then
if mid(str,i+1,1)=chr(32) or mid(str,i+1,1)=chr(9) or mid(str,i-1,1)=chr(32) or mid(str,i-1,1)=chr(9) then

result=result+"&amp;nbsp;"
else
result=result+" "
end if
else
result=result+"&amp;nbsp;"
end if
case else
result=result+mid(str,i,1)
end select
next
if err.number<>0 then
err.clear
htmlencode=result
end function
%>

<td width="100%"><%=htmlencode(rs("ment"))%></td>
这样就可以了
 
顶部