关于ASP对字符转换的问题

crackzzy 2003-01-02 06:02:15
我现在要做一个新闻系统。其中在数据库中就存储了新闻的内容。但是内容很长,而且都是包含回车和空格的。如果在HTML代码里直接显示数据库里的信息的话,浏览器会把回车显示成空格,但是在代码里是回车;而空格虽然被原原本本地存在了数据库里,可是HTML却把很多空格都显示成一个空格。如果一个段落开头要空两格的话,就会造成显示结果的错误。请问各位高手谁知道怎么解决方法,比如在新闻存储到数据库里之前将新闻内容里的回车转换成<br>,将空格转换成 ,然后再存储,而要编辑新闻的时候又能自动把<br>和 转换成回车和空格。听说ASP有提供这样的函数,如果是真的话,那是什么函数呢?怎么个用法?请知道方法的高手一定要回复啊~~~~~~~~~~小弟在这先谢了~~~~
...全文
54 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jlcanoe 2003-01-02
  • 打赏
  • 举报
回复
用 tdl982324(石井坚) 的switch语句,每一个case后,都有一个break,转换后,就执行下一个字符的转换。

这样应该就不会出现多次转换的错误了。
crackzzy 2003-01-02
  • 打赏
  • 举报
回复
而且对单引号的处理也不是很完美。
我输入单引号测试的时候总是发生错误。代码无法正常执行,数据无法正常地存入数据库。
crackzzy 2003-01-02
  • 打赏
  • 举报
回复
可是我是按上面代码原抄的啊
转换回车的代码也在转换<和>的代码的后面啊,可是显示的时候还是不能达到我想要的效果
希偌 2003-01-02
  • 打赏
  • 举报
回复
你要把转换的顺序弄正确
必须先
s=replace(s,"<","<")
s=replace(s,">",">")
然后
s=replace(s,chr(32)," ")
s=replace(s,chr(10),"<br>")
如果先转换回车,那么转换之后的<br>又被转换成<br>,当然不正常啦,所以要注意转换的顺序
crackzzy 2003-01-02
  • 打赏
  • 举报
回复
以上各位用VB实现的方法我试过了,可是我发现VB对回车的处理不是太好。当在文章中碰到回车后并不能正确地转换为<BR>,而且我把CHR(10)和CHR(13)都试过了,都不行哎,不知道谁能更好的解决这个问题呢?
BrightEye 2003-01-02
  • 打赏
  • 举报
回复
存入数据库的时候转换一下,读取的时候还原。
colee 2003-01-02
  • 打赏
  • 举报
回复
自己写函数放在包含文件里,
function HTMLEncode(fString)
if not isnull(fString) then
fString = trim(fString)
'fString = Replace(fString, "&", "&") '要最先转化
fString = replace(fString, ">", ">")
fString = replace(fString, "<", "<")
'fString = Replace(fString, CHR(32), " ")
fString = Replace(fString, CHR(9), " ")
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

function HTMLDecode(fString)
if not isnull(fString) then
fString = trim(fString)
fString = replace(fString, ">", ">")
fString = replace(fString, "<", "<")
fString = Replace(fString, " ",CHR(32))
fString = Replace(fString, "",CHR(13))
fString = Replace(fString, "</P><P>", CHR(10) & CHR(10))
fString = Replace(fString, "<BR>", CHR(10))
'fString = Replace(fString, "&", "&")'自动识别
HTMLDecode = fString
end if
end function

Reker熊 2003-01-02
  • 打赏
  • 举报
回复
上方一般用于对输出进行格式化

若要在插入数据库之前进行格式化,如下:

<script language=javascript>
function coder(str)
{
var s = "";
if (str.length == 0) return "";
for (var i=0; i<str.length; i++)
{
switch (str.substr(i,1))
{
case "<" : s += "<"; break;
case ">" : s += ">"; break;
case "&" : s += "&"; break;
case " " : s += " "; break;
case "\"" : s += """; break;
case "\n" : s += "<br>"; break;
default : s += str.substr(i,1); break;
}
}
return s;
}
</script>
liuqinyi 2003-01-02
  • 打赏
  • 举报
回复
Function coder(data)
Dim result,L,i
If IsNull(data) Then : coder="" : Exit Function : End If
L=Len(data) : result=""
For i = 1 to L
select case mid(data,i,1)
case "<" : result=result+"<"
case ">" : result=result+">"
case chr(34) : result=result+"""
case "&" : result=result+"&"
case chr(13) : result=result+"<br/>"
case chr(9) : result=result+"    "
case chr(32) : result=result+" "
case else : result=result+mid(data,i,1)
end select
Next
coder=result
End Function

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧