【发布时间】:2011-01-18 09:19:58
【问题描述】:
我正在使用此代码将字符串转换为 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 提供商短信系统)。用户在我的程序中编写的字符串(message mobile)必须经过编码(ISO 8859-1)发送。
例如,PHP 中的这段代码运行良好:
$texto=urlencode($textoOriginal);
此代码返回转换后的字符串:
价格+80%2BVAT
编辑 2
我认为我的代码是错误的。因为如果我发送编码为“price+80%2BVAT”的相同字符串,为什么在 VB.NET 代码中无法运行而在 PHP 中运行良好?是相同的编码字符串。
【问题讨论】:
-
这是 UrlEncode 的默认行为
标签: .net vb.net encoding character-encoding iso-8859-1