Я использую этот код для преобразования строки в ISO8859-1Проблема кодирования строки в 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()
Но проблема в том, когда пользователь пишет этот carácter: +
Пример:
пользователя пишет в моем приложении:
цена 80 + НДС
строка в кодировке в моем приложении, и эта строка передается поставщику:
цена + 80% 2bVAT
смс получил в мобильный:
цена 80 НДС
EDIT
Ineed перейти к URL некоторые переменные. Потому что у меня есть программа для отправки смс, и мне нужно отправить переменные в URL-адрес (система SMS-провайдера SMS). Строка (message mobile, которую пользователь записывает в моей программе) должна быть отправлена в кодировке (ISO 8859-1).
Например, этот код в PHP работает нормально:
$texto=urlencode($textoOriginal);
Этот код возвращает эту строку, преобразованную:
цена + 80% 2BVAT
EDIT 2
Я думаю, что мой код неправильный. Потому что, если я отправляю одну и ту же строку с кодировкой «цена + 80% 2BVAT», почему в коде VB.NET не запускается и в PHP работает нормально? Это одна и та же закодированная строка.
, что является поведение по умолчанию UrlEncode –