康师傅绿茶喝多了好吗:ASP新增,修改文章 问题 不是高手勿进

来源:百度文库 编辑:高考问答 时间:2024/05/05 19:34:00
新增文章时`本人用以下代码
以防输出不是HTNL码`
Function HTMLEncode2(str)
dim lytemp
dim zh
dim i
for i = 1 to len(str)
zh = mid(str,i,1)
if zh=" " then zh = " "
if asc(zh)=10 then zh = "<br>"
if asc(zh)=13 then zh = ""
if zh="<" then zh="<"
if zh=">" then zh=">"
lytemp = lytemp + zh
next
str = lytemp
HTMLEncode2=str
End Function
问题在于修改文章时候
但在修改文章时``
<textarea rows="6" name="S1" cols="51">
<%=rs("text")%></textarea>
修改时却出现了`<BR>   ..
之类HTNL符号``在textarea内出现
这么一来大量的文章修改`会很不方便`
再加上
rs("text")=HTMLEncode2(S1)
rs.update
又会再次用上HTMLEncode2编码在以有HTML编码上再编多次码~再编多一次码`导致页面大小破坏``
所以本人用了一个完全没有效果的方法~
Function OutHTML(str)
dim realstr
if len(str)<>0 then
realstr=replace(str,"<","<")
realstr=replace(str,">",">")
realstr=replace(str," "," ")
realstr=replace(str,"<br>",chr(10))
OutHTML=str
else
response.write "STR没有任何数据,或程序调用错误。输出HTNL码错误"
end if
end Function
但完全没有效果``分不清
chr(10)和chr(13) 和ASC是什么关系`
请高手帮在下解答两个问题`
1`请在修该页面的textarea内不出现HTML编码`但会自动换行``
2`导电chr(10)和chr(13) 和ASC是什么关系`
请详解````谢谢~

首先:10 是换行符的ascII码,也就是说 chr(10) 就是代表换行符.13是回车的ascII码,chr(13) 代表回车符,
对于文章发布与修改,你可以有两种方法:
1.可以在文章显示页面替换,在数据库中保存的为原样,
str1=replace(str1,chr(13),"<br>")
str1=replace(str1,chr(10),"<br>")
str1=replace(str1,"<","<")
str1=replace(str1,">",">")
这两句在显示输出内容前执行.
在修改页就不用替换,可以直接读取数据库中的值到文本框中即可.
这种方式最好.
2.在提交时保存在数据库前替换:
str1=replace(str1,"<","<")
str1=replace(str1,">",">")
str1=replace(str1,chr(13),"<br>")
str1=replace(str1,chr(10),"<br>")
在修改时读取后未放入文本框前,反过来替换一下:
str1=replace(str1,"<br>",chr(10))
str1=replace(str1,"<","<")
str1=replace(str1,">,">)
至于其他字符的替换,你自己再加上就可以了

看不懂