私の.asp WebページではうまくいったEscape機能に困惑していますが、.Net aspx Webページでは機能しません。.Net ..でVBScript Escape()関数を使用できますか?
変数はこのように宣言されています。
Dim sProtocols As String
このコンテンツは(ファイルを読むことによって)sProtocols変数にロードされます。
[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の内容で呼び出されます。
sTemp = Escape(sProtocols)
ここでは、Webページに埋め込むことができる完全に形成された出力です。 %の5Dの%0D%0AServiceName%3DEML%20FORWARD%0D%の0Dの%0APortDataBits%の3D%0Dの%の0APortParity%の3次元%の0Dの%の0APortStopBits%0AProtocolKey%3DSMTP_ANY_DESTN%0D%の0APortBaudRateの%の3Dを20forwarding%20Email
%の5BEML% %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の%の3次元%の0D%0AX25Prompt%3Dyour.domain.comの%0D%0A%
はしかし、ウェブページのネットのASPXのバージョンで私は、これらのエラーを取得します。
[FormatException:入力文字列が正しい形式ではありませんでした。】
Microsoft.VisualBasic.CompilerServices.Conversions.ParseDouble(文字列値、のNumberFormatInfoのNumberFormat)213
Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger (文字列値)+90[InvalidCastExceptionが:文字列から変換 "[EMLメール] ServiceNを転送する" '整数' を入力するのが有効ではありません]
Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(文字列値) +238
CでASP.emi2_aspx .__ Render__control1(たHtmlTextWriter __w、コントロールparameterContainer):\のinetpub \ wwwrootに\ EmsgwebOUT_NETEDITW.aspx:188
System.Web.UI.Control.RenderChildrenInternal(指定されたHtmlTextWriterライター、ICollectionを子供)268
システム。 WebUI.Control.RenderChildren(HtmlTextWriterライター)+13
System.Web.UI.Page.Render(HtmlTextWriter writer)+29
System.Web.UI.Control.RenderControlInternal(HtmlTextWriterライター、ControlAdapterアダプター)+66
System.Web.UI.Control.RenderControl(HtmlTextWriterライター、ControlAdapterアダプター)+100
System.Web.UI.Control.RenderControl(HtmlTextWriter writer)+25
System.Web.UI.Page.ProcessRequestMain(ブールincludeStagesBeforeAsyncPoint、ブールのincludeStagesAfterAsyncPoint)1303
は、私はそれは常に使用するために、このような単純な関数でエスケープする前に働いていたと、理解していません。
Escape関数の文字列を準備するために何か他の処理を行う必要がありますか、これを行う別の方法がありますか?
[HttpServerUtility.UrlEncodeメソッド](https://msdn.microsoft.com/en-us/library/zttxte6w(v = vs.110).aspx)を探している必要があります。... VBScript!= VB.Net – Filburt
ありがとうFilburt、しかし、UrlEncodeのために%20アポストロフィを%27にエンコードしていないし、+文字を保持していないためです。 – rangi