J'utilise ce code pour convertir la chaîne à ISO8859-1Problème chaîne de codage 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()
Mais le problème est quand un utilisateur écrit ce caracter: +
Exemple:
utilisateur écrit dans mon application:
prix 80 + TVA
chaîne encodée dans mon application et cette chaîne est envoyée au fournisseur:
prix + 80% 2bVAT
sms reçu dans le mobile:
prix 80 TVA
EDIT
Ineed pour passer à l'URL des variables. Parce que j'ai un programme pour envoyer des sms, et j'ai besoin d'envoyer des variables à l'URL (système SMS du fournisseur d'URL). La chaîne (message mobile que l'utilisateur écrit dans mon programme) doit être encodée (ISO 8859-1).
Par exemple, le code en PHP fonctionne très bien:
$texto=urlencode($textoOriginal);
Ce code renvoie cette chaîne convertie:
prix + 80% 2BVAT
EDIT 2
Je pense que mon code est faux. Car si j'envoie la même chaîne encodée "price + 80% 2BVAT", pourquoi le code VB.NET ne s'exécute-t-il pas et en PHP s'exécute bien? Est-ce la même chaîne codée.
qui est le comportement par défaut de UrlEncode –