Я использую этот код для преобразования строки в 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 НДС
EDIT
Требуется передать на URL некоторые переменные. Потому что у меня есть программа для отправки смс, и мне нужно отправить переменные на URL (система SMS провайдера URL). Строка ( сообщение моб. , которое пользователь пишет в моей программе) должна быть отправлена в кодированном виде (ISO 8859-1).
Например, этот код в PHP работает нормально:
$texto=urlencode($textoOriginal);
Этот код возвращает преобразованную строку:
цена + 80% 2BVAT
РЕДАКТИРОВАТЬ 2
Я думаю, что мой код неверен. Потому что, если я посылаю ту же строку в кодировке "цена + 80% 2BVAT", почему в VB.NET код не запускается, а в PHP работает нормально? Это та же самая закодированная строка.