首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBScript Escape()函数能否用于.Net..?

VBScript Escape()函数能否用于.Net..?
EN

Stack Overflow用户
提问于 2016-08-16 20:38:19
回答 1查看 235关注 0票数 0

我对逃逸功能感到困惑,它在我的.asp网页上工作得很好,但在.Net aspx网页上却不起作用;

这样就宣布了一个变量;

代码语言:javascript
复制
Dim sProtocols As String

该内容被加载到sProtocols变量中(通过读取文件);

代码语言:javascript
复制
[EML Email forwarding]
ServiceName=EML FORWARD
ProtocolKey=SMTP_ANY_DESTN
PortBaudRate=
PortDataBits=
PortParity=
PortStopBits=
PortFlowControl=OFF
DialNumber=
ServicePrompt=
ServiceLogoff=
CarrierPrefix=
AccessKey=
MaxPages=999
MaxLength=250
MaxAttempts=1
X25NUA=
X25Prompt=your.domain.com

然后对sProtocols的内容调用Escape函数;

代码语言:javascript
复制
sTemp = Escape(sProtocols)

以下是可以嵌入到网页中的完美的输出;

%5BEML%20Email%20forwarding%5D%0D%0AServiceName%3DEML%20FORWARD%0D%0AProtocolKey%3DSMTP_ANY_DESTN%0D%0APortBaudRate%3D%0D%0APortDataBits%3D%0D%0APortParity%3D%0D%0APortStopBits%3D%0D%0APortFlowControl%3DOFF%0D%0ADialNumber%3D%0D%0AServicePrompt%3D%0D%0AServiceLogoff%3D%0D%0ACarrierPrefix%3D%0D%0AAccessKey%3D%0D%0AMaxPages%3D999%0D%0AMaxLength%3D250%0D%0AMaxAttempts%3D1%0D%0AX25NUA%3D%0D%0AX25Prompt%3Dyour.domain.com%0D%0A%

然而,在.Net网页的aspx版本中,我得到了这些错误;

FormatException:输入字符串格式不正确。 Microsoft.VisualBasic.CompilerServices.Conversions.ParseDouble(String值,NumberFormatInfo NumberFormat) +213 Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(String值) +90 [InvalidCastException:从字符串"EML电子邮件转发ServiceN“到键入'Integer‘的转换无效。) Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(String值) +238 ASP.emi2_aspx.__Render__control1(HtmlTextWriter __w,Control parameterContainer)在C:\inetpub\wwwroot\EmsgwebOUT_NETEDITW.aspx:188中 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter作者,ICollection儿童) +268 ( System.Web.UI.Control.RenderChildren(HtmlTextWriter作者) +13 System.Web.UI.Page.Render(HtmlTextWriter作家) +29 System.Web.UI.Control.RenderControlInternal(HtmlTextWriter编写器,ControlAdapter适配器) +66 System.Web.UI.Control.RenderControl(HtmlTextWriter编写器,ControlAdapter适配器) +100 ( System.Web.UI.Control.RenderControl(HtmlTextWriter作者) +25 System.Web.UI.Page.ProcessRequestMain(布尔型includeStagesBeforeAsyncPoint,布尔型includeStagesAfterAsyncPoint) +1303

我不明白,它以前总是起作用的,而且Escape是一个很简单的函数。

我是否需要做一些其他的事情来为Escape函数准备字符串,还是有一种替代的方法来做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-16 20:58:58

考虑使用一种C#替代方案:

代码语言:javascript
复制
string s = @"[EML Email forwarding]
ServiceName=EML FORWARD
ProtocolKey=SMTP_ANY_DESTN
PortBaudRate=
PortDataBits=
PortParity=
PortStopBits=
PortFlowControl=OFF
DialNumber=
ServicePrompt=
ServiceLogoff=
CarrierPrefix=
AccessKey=
MaxPages=999
MaxLength=250 -
MaxAttempts=1
X25NUA=
X25Prompt=your.domain.com";

string s2 = System.Uri.EscapeDataString(s);

Console.WriteLine(s2);

%5BEML%20Email%20forwarding%5D%0D%0AServiceName%3DEML%20FORWARD%0D%0AProtocolKey%3DSMTP_ANY_DESTN%0D%0APortBaudRate%3D%0D%0APortDataBits%3D%0D%0APortParity%3D%0D%0APortStopBits%3D%0D%0APortFlowControl%3DOFF%0D%0ADialNumber%3D%0D%0AServicePrompt%3D%0D%0AServiceLogoff%3D%0D%0ACarrierPrefix%3D%0D%0AAccessKey%3D%0D%0AMaxPages%3D999%0D%0AMaxLength%3D250%0D%0AMaxAttempts%3D1%0D%0AX25NUA%3D%0D%0AX25Prompt%3Dyour.domain.com

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38984050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档