Database Vbscript将变量从access数据库传递到电子邮件

Database Vbscript将变量从access数据库传递到电子邮件,database,asp-classic,vbscript,Database,Asp Classic,Vbscript,为什么我必须用数据库中的空格对字符串进行URL编码以传递到电子邮件MAILTO主题,而如果手动创建MAILTO字符串,则不必这样做。 如: 工作正常,但如果我从数据库获取主题,它只传递第一个单词Hello,并修剪其余单词,除非我使用Server.URLEncodestringfromdatabase。这将在空格处插入+ 是否有一种方法允许我将带有空格的字符串从数据库传递到不需要修改字符串的电子邮件客户端(添加+或%20)?使用替换函数将空格与%20交换。在您的示例中,变量为 replace(st

为什么我必须用数据库中的空格对字符串进行URL编码以传递到电子邮件MAILTO主题,而如果手动创建MAILTO字符串,则不必这样做。 如: 工作正常,但如果我从数据库获取主题,它只传递第一个单词Hello,并修剪其余单词,除非我使用Server.URLEncodestringfromdatabase。这将在空格处插入+


是否有一种方法允许我将带有空格的字符串从数据库传递到不需要修改字符串的电子邮件客户端(添加+或%20)?

使用替换函数将空格与%20交换。在您的示例中,变量为

replace(stringfromdatabase," ", "%20")

这对我在ASP页面中使用VBScript很有效。

所有排序感谢您使用了以下内容

函数CleanStringstrData '替换无效字符串。 strData=替换strData,', strData=替换strData, strData=ReplacestrData,&,和 CleanString=TrimstrData 端函数

Function strClean (strtoclean)
    Dim objRegExp, outputStr
    Set objRegExp = New Regexp

    objRegExp.IgnoreCase = True
    objRegExp.Global = True
    objRegExp.Pattern = "((?![a-zA-Z0-9\s*,]).)+"

    outputStr = objRegExp.Replace(strtoclean, "-")

    objRegExp.Pattern = "\-+"
    outputStr = objRegExp.Replace(outputStr, "")

    strClean = outputStr
End Function  

问题似乎出在你的代码上。你没有包括它,所以很难提出任何建议…我同意,看起来问题在于处理提取/传递变量的代码段,而不是这个。用作主题的变量不能获取整个字符串。你能再给我们一些代码片段吗?简言之,你需要弄清楚行程到底发生在哪里,在鼠标上方显示完整字符串,但当选中并单击该字符串时-在客户端打开新电子邮件-只有第一个单词插入主题行,除非我使用urlencode替换所有空格。从数据库填充时是否将href括在引号中?已解决此问题,谢谢,已使用|函数strClean strtoclean Dim objRegExp,outputStr Set objRegExp=New Regexp objRegExp.IgnoreCase=True objRegExp.Global=True objRegExp.Pattern=?![a-zA-Z0-9\s*,].+outputStr=objRegExp.Replacestrtoclean,-objRegExp.Pattern=\-+outputStr=objRegExp.ReplaceoutputStr,strClean=outputStr结束函数