begin process at 2008 07 07 02:38:34
1 205 881 membres
32 nouveaux aujourd'hui
14 120 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème de caractère dans une URL [ Divers / General ] (dimitriusai)

Problème de caractère dans une URL le 08/05/2008 10:10:15

dimitriusai
Bonjour, je block sur un problème de caractère.(vb.net)
J'utilise pour une application l'envoie d'information par url(GET).
Quand j'envoie un message avec les é è à ù etc j'obtiens des A A A A lors de la réception du GET. (Voici comment je fais (avec une fct GEt trouvée sur vbfrance))

 Private Function Get_request(ByVal url As String) As String
        Dim reader As IO.StreamReader 'on crée un objet streamreader
        Try
            Dim hwebrequest As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(url)
            Dim hwebresponse As System.Net.HttpWebResponse = hwebrequest.GetResponse
            reader = New IO.StreamReader(hwebresponse.GetResponseStream)
            Dim res As String = ""
            res = reader.ReadToEnd()
            reader.Close()
            hwebresponse.Close()
            Return res
        Catch ex As Exception
            Return ex.ToString
        End Try
 End Function

Public Sub ThrFunc()
        Try    
           Dim _Message as String = "Bonjour éèàù^$µ"  
           Get_request("http://url?Message=" + _Message)           
        Catch ex As Exception
            Console.writeline(ex.Message)
        End Try
End Sub

Alors que quand je tape l'url dans un browser, les accents passent parfaitement.

Si qqun sait m'aider, merci d'avance


Re : Problème de caractère dans une URL le 08/05/2008 18:57:04

jack
(Admin CS)
Salut
Faudrait se renseigner si le format international (UniCode, UTF ou ANSI).
D'autre part, il est évident qu'il ne peut pas y avoir d'espace dans une URL.
Ta commande ne peut donc pas fonctionner.
Regarde du côté de la tranformation de chaque caractère par son code ASCII au format Hexadécimal.
Par exemple, un espace = ASCII 32 = Hexa 20
--> Remplacer les espaces avec un %20
Je suppose que tranformer toute ta chaine avec cette convertion %xx pourrait résoudre ton problème d'accents à condition d'utiliser le jeu de caractères ANSI (les caractères accentués ne sont pas au même index que l'ASCII)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Re : Problème de caractère dans une URL le 08/05/2008 22:41:31

dimitriusai
en fait je t'explique.
C'est un envoie de sms, cela fonctionne parfaitement avec un webbrowser (vb.net) avec espace ou pas ! c'est avec voipbuster.

Je dois maintenant réussir à le faire avec un httprequest ou autre mais pas de windows form.


Si qqun sait m'aider

Re : Problème de caractère dans une URL le 10/05/2008 02:13:46

jack
(Admin CS)
Re
C'est bien ce que je dis : Le WebBorwser, qui n'est pas bête, traduit ton texte afin qu'il respecte la norme.
Si tu dois le programmer, c'est à ton programme de respecter les règles.
Commence par traduire ton texte en ANSI puis à remplacer les espaces (et autres caractères non acceptés dans les URL) par leur représentation hexadécimale précédée de %
Les seuls caractères acceptés par une URL sont
1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz:/.?=_-$(){}~&
Voir URLEncode

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Re : Problème de caractère dans une URL le 10/05/2008 02:48:54

dimitriusai
Merci, je termine un autre projet et mis remet dès mardi !!
Je continue ma progra car impossible de dormir comme d'hab ...

Merci Jack

Re : Problème de caractère dans une URL le 13/05/2008 09:12:39

dimitriusai

Cela semble tjrs pauser problème.
J'ai essayé avec urlencode.

_Message = "salut comment tu é è à ù $ µ = : ^) ! è § ( "

_Message = System.Web.HttpUtility.UrlEncode(_Message)

Get_Request(https://myaccount.voipbuster.com/clx/sendsms.php?username=****&password=*********&from=*******&to=+32***********7&text=" + _Message)


Message recu :  salut comment tu A A A A $ A = : ^) ! A A § (

Si qqun as une autre idée que UrlEncode ??????

Merci d'avance


Re : Problème de caractère dans une URL le 14/05/2008 02:12:37

jack
(Admin CS)
Re
C'est pourtant la seule solution si tu veux envoyer ton texte avec cette méthode !
Sache aussi que la chaine d'une URL a une longueur maximum (~2083).

Intéresse-toi aux codes ASCII reçus.
Les A affichés ici ne sont qu'une interprétation des codes ASCII reçus.
Vérifie si les codes ASCII en question.
Pour info, voici une table de conversion ASCII <--> ANSI faite en VB6, qui doit être réutilisable en .Net, mais je pense qu'il doit y avoir une classe/fonction de conversion sous .Net, tout le problème est de savoir dans quelle bibliothèque elle se cache.

Sous forme de chaine :
    ' Constantes de conversion ASCII <> ANSI
    sASCI As String = Chr$(132) & Chr$(148) & Chr$(129) & Chr$(225) & Chr$(142) & Chr$(153) & Chr$(154) & Chr$(128) & Chr$(130) & Chr$(131) & Chr$(133) & Chr$(134) & Chr$(135) & Chr$(136) & Chr$(137) & Chr$(138) & Chr$(139) & Chr$(140) & Chr$(143) & Chr$(144) & Chr$(147) & Chr$(150) & Chr$(151) & Chr$(20) & Chr$(145) & Chr$(146) & Chr$(155) & Chr$(156) & Chr$(166) & Chr$(167) & Chr$(171) & Chr$(172) & Chr$(237) & Chr$(241) & Chr$(246) & Chr$(253) & Chr$(21) & Chr$(157)
    sANSI As String = Chr$(228) & Chr$(246) & Chr$(252) & Chr$(223) & Chr$(196) & Chr$(214) & Chr$(220) & Chr$(199) & Chr$(233) & Chr$(226) & Chr$(224) & Chr$(229) & Chr$(231) & Chr$(234) & Chr$(235) & Chr$(232) & Chr$(239) & Chr$(238) & Chr$(197) & Chr$(201) & Chr$(244) & Chr$(251) & Chr$(249) & Chr$(182) & Chr$(230) & Chr$(198) & Chr$(162) & Chr$(163) & Chr$(170) & Chr$(186) & Chr$(189) & Chr$(188) & Chr$(216) & Chr$(177) & Chr$(247) & Chr$(178) & Chr$(167) & Chr$(165)
Tu n'as plus qu'à trouver où se trouve (à quelle position) le code ASCII dans une des chaines pour retrouver son équivalent en ANSI, au même index de l'autre chaine.

Sous forme d'un tabeau de codes :
Table_Conversion_ASCII_ISO = Array( _
            0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, _
            16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, _
            32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, _
            48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, _
            64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, _
            80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, _
            96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, _
            112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, _
            199, 252, 233, 226, 228, 224, 229, 231, 234, 235, 232, 239, 238, 236, 196, 197, _
            201, 145, 146, 244, 246, 242, 251, 249, 255, 214, 220, 155, 156, 157, 158, 159, _
            225, 237, 243, 250, 241, 209, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, _
            176, 177, 178, 179, 180, 193, 194, 192, 184, 185, 186, 187, 188, 189, 190, 191, _
            192, 193, 194, 195, 196, 197, 227, 195, 200, 201, 202, 203, 204, 205, 206, 207, _
            208, 209, 202, 203, 200, 213, 205, 206, 207, 217, 218, 219, 220, 221, 204, 223, _
            211, 225, 212, 210, 245, 213, 181, 231, 232, 218, 219, 217, 253, 221, 238, 239, _
            240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255)

Exemple : le code ASCII étendu ISO 8859-1 n° 224 (à) donnera son équivalent ANSI : n° 211

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Re : Problème de caractère dans une URL le 14/05/2008 02:15:20

jack
(Admin CS)
Oups, dans le dernier exemple, je me suis trompé de sens : Ascii 224 donne Ansi 133

Re : Problème de caractère dans une URL le 18/05/2008 16:49:11

jack
(Admin CS)
Mais y-a pas de quoi

Re : Problème de caractère dans une URL le 18/05/2008 18:23:02

dimitriusai
Merci pour tes réponses Jack mais tjrs aucune solution trouvée.
Cela fonctionne avec un objet webbrowser, donc je me demande si il n'y a pas moyen d'utiliser la fct du webbrowser sans devoir déclarer et utiliser l'interface du webbrowser.

Merci d'avance si qqun sait m'aider car ca me block dans ma progression.


Classé sous : message, net, string, url, get

Participer à cet échange

Pub



Appels d'offres

Realisation graphique ...
Budget : 700€
WEB DESIGN
Budget : 1 000€
Plugin Dialer outlook
Budget : 2 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS