我正在使用此代码将字符串转换为 ISO8859-1
baseurl = "http://myurl.com/mypage.php"
client = New WebClient
client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)")
client.QueryString.Add("usuario", user)
client.QueryString.Add("password", pass)
client.QueryString.Add("ruta", 2)
client.QueryString.Add("remitente", Me.txtRemite.Text)
If Me.chkPRefijo.Checked = True Then
client.QueryString.Add("destinatarios", Me.LookUpEdit1.EditValue & Me.dtsMvl.Tables(0).Rows(x).Item("movil"))
Else
client.QueryString.Add("destinatarios", Me.dtsMvl.Tables(0).Rows(x).Item("movil"))
End If
textoSms = Me.mmTexto.Text
textoSms = System.Web.HttpUtility.UrlEncode(textoSms, System.Text.Encoding.GetEncoding("ISO-8859-1"))
client.QueryString.Add("mensaje", textoSms)
client.QueryString.Add("reporte", 1)
data = client.OpenRead(baseurl)
reader = New StreamReader(data)
s = reader.ReadToEnd()
data.Close()
reader.Close()
但问题是当用户写这个字符时:+
例子:
用户在我的应用程序中写道:
价格 80+增值税
我的应用程序中的编码字符串,这个字符串被发送到提供者:
价格+80%2bVAT
手机收到的短信:
价格 80 增值税
编辑
需要向 URL 传递一些变量。因为我有一个发送短信的程序,而且我需要将变量发送到 URL(URL 提供商短信系统)。必须以编码(ISO 8859-1)发送字符串(用户在我的程序中编写的message mobile )。
例如,PHP 中的这段代码运行良好:
$texto=urlencode($textoOriginal);
此代码返回转换后的字符串:
价格+80%2BVAT
编辑 2
我认为我的代码是错误的。因为如果我发送编码为“price+80%2BVAT”的相同字符串,为什么在 VB.NET 代码中无法运行而在 PHP 中运行良好?是相同的编码字符串。