asp vbscript报错“字符串空间不够”

asp vbscript报错"字符串空间不够"

写一个新产品的rss,把所有xml拼接到一个字符串里,然后一并response.write输出,但在服务器上运行时,出错了,asp/vbscript报错"字符串空间不够",出错的行,也确实是拼接字符串的行。

字符串还会空间不够,只有几百条产品的rss,感觉最大也只不过几十K的样子。怀疑是否是程序有错,但这样简单的程序,应该不会写错的,google一下,好像没有看到有用的东西,有两篇也是没有解决的“死”问题。看来还得自己解决。

根据错误提示,像是说字符串长度问题,也是是超出了vbs字符串允许的最大长度,印像中vbs不该这样超过长度——不是科班出身,没有系统的学过vbscript,不知道vbs的字符串是否有长度限制——

那就姑且当它是超过了允许最大长度,修改一下:既然是超过最大长度,那就让它分批输出,加上如下面代码中标红代码。

上传运行,正常,问题解决。

看来真的vbscript真的有字符串最大长度限制。

i=1
do while not rs.eof
if i mod 30=0 then
response.Write(str)
str=""
end if

str = str + "<item id="""&i&"""><title><![CDATA["&rs("title")&"]]></title>"& vbcrlf
str = str + "<link>"&linkurl&rs("id")&"</link>"& vbcrlf
str = str + "<description><![CDATA["&rs("title")&"<br>Number:"&rs("number")&"<br>"&left(rs("intro"),500)&"]]></description>"& vbcrlf
str = str + "<pubDate>"&rs("date")&"</pubDate>"& vbcrlf
str = str + "</item>"& vbcrlf
rs.movenext
i=i+1
loop
rs.close

php的文档里有这样一段话:

"注: 一个字符串变得非常巨大也没有问题,PHP 没有给字符串的大小强加实现范围,所以完全没有理由担心长字符串。"

但vbscript没有见过这样的说法,也可能是记串了。