Urgent SVP... Problème d'accents avec les Web Services
23 réponses
JC
Bonjour,
J=92esp=E8re que quelqu=92un m=92apportera la solution car j'ai d=E9j=E0 pe=
rdu 6
jours de travail =E0 chercher partout des solutions, et tous mes projets
sont bloqu=E9s =E0 cause de ce probl=E8me ...
Je dois utiliser les services Web, mais j'ai un s=E9rieux probl=E8me avec
les cha=EEnes non ASCII (par exemple celles avec des accents, tel que
"J=E9r=F4me").
Voici deux morceaux de mon code : un extrait du WSDL, et des boutons
pour utiliser deux fonctions tr=E8s simples du service Web.
- La premi=E8re fonction (qui me sert de test pour l'envoi avec accent)
est Hello_Name (aName, aLogin, aPwd), qui utilise 3 cha=EEnes de
caract=E8res comme param=E8tres et renvoie simplement le param=E8tre
"aName" dans le message "Bonjour mon cher aName". Si j=92envoie "John",
je re=E7ois "Bonjour mon cher John", mais si j=92envoie "J=E9r=F4me", je
re=E7ois "Bonjour mon cher J?R?me" et pas "Bonjour mon cher J=E9r=F4me".
Quand je teste ce service web en Flash ou C#, je n'ai aucun probl=E8me
avec les accents, je re=E7ois "Bonjour mon cher J=E9r=F4me".
- La deuxi=E8me fonction (qui me sert pour la r=E9ception d'accent) est
voir_users_meeting (aLogin), qui utilise 1 cha=EEne en param=E8tre ("1234"
en fait) et retourne tout simplement toujours la m=EAme liste de noms,
dont un nom avec accent ( "Zo=E9"). Encore une fois, avec Flash ou C#,
pas de probl=E8me, mais avec Windev je re=E7ois "Zo=C3=A9" et non pas "Zo=
=E9".
J'ai essay=E9 beaucoup de solutions, mais je suppose 'pas la bonne'. Par
exemple, j'ai essay=E9:
- des appels avec SOAP.name [], SOAP.type []=85
- l'importation du webservice comme une collection de proc=E9dures
(comme pr=E9vu par Windev), puis d'appeler ces proc=E9dures. C'est la
solution que j'utilise en ce moment.
- de transformer les chaines avant l'envoi (et/ou apr=E8s) en (ou =E0
partir de) XML, Unicode, ANSI, OEM, URL, etc.
- d'utiliser des chaines fixes, des cha=EEnes de caract=E8res ASCIIZ, des
chaines UNICODE, etc., en tant que param=E8tres.
Rien ne me donne "J=E9r=F4me" ou "Zo=E9" :-(
J'ai vraiment besoin de votre aide. J'esp=E8re que quelqu'un a la
solution.
//------------- code Windev pour Hello_Name (code dans un bouton)
stResultat est STHello_NameResponse
stTexteAEnvoyer est cha=EEne
// j=92ai essay=E9 aussi: stTexteAEnvoyer est STHello_Name
//et aussi: stTexteAEnvoyer est cha=EEne UNICODE, etc....
//
//
// j=92ai essay=E9: stTexteAEnvoyer:m_name=3D"J=E9r=F4me"
// et aussi: stTexteAEnvoyer=3DAnsiVersUnicode("J=E9r=F4me")
stTexteAEnvoyer=3D"J=E9r=F4me"
stResultat=3DHello_Name(stTexteAEnvoyer, "my_login", "my_password")
// j=92ai essay=E9: stR=E9sultat=3DHello_Name(stTexteAEnvoyer:m_name,
"mon_login", "mon_password")
Info(stResultat:m_Hello_NameResult)
// et aussi
stResultat:m_Hello_NameResult=3DXMLVersTexte(stResultat:m_Hello_NameResult)
Info(stResultat:m_Hello_NameResult)
//------------- code Windev pour voir_users_meeting (code dans un
bouton)
//c=92est juste un exemple de tous mes essais=85..
stResultat est STvoir_users_meetingResponse
sTexteAEnvoyer est cha=EEne
sTexteAEnvoyer=3D"1234"
stResultat=3Dvoir_users_meeting(sTexteAEnvoyer)
stResultat:m_voir_users_meetingResult=3DXMLVersTexte(stResultat:m_voir_user=
s_meetingResult)
Info(stResultat:m_voir_users_meetingResult)
J’espère que quelqu’un m’apportera la solution car j'ai déjà perdu 6 jours de travail à chercher partout des solutions, et tous mes projets sont bloqués à cause de ce problème ...
Je dois utiliser les services Web, mais j'ai un sérieux problème avec les chaînes non ASCII (par exemple celles avec des accents, tel que "Jérôme").
Voici deux morceaux de mon code : un extrait du WSDL, et des boutons pour utiliser deux fonctions très simples du service Web.
- La première fonction (qui me sert de test pour l'envoi avec accent) est Hello_Name (aName, aLogin, aPwd), qui utilise 3 chaînes de caractères comme paramètres et renvoie simplement le paramètre "aName" dans le message "Bonjour mon cher aName". Si j’envoie "John", je reçois "Bonjour mon cher John", mais si j’envoie "Jérôme", je reçois "Bonjour mon cher J?R?me" et pas "Bonjour mon cher Jérôme". Quand je teste ce service web en Flash ou C#, je n'ai aucun problème avec les accents, je reçois "Bonjour mon cher Jérôme".
J'ai essayé beaucoup de solutions, mais je suppose 'pas la bonne'. Par exemple, j'ai essayé: - des appels avec SOAP.name [], SOAP.type []… - l'importation du webservice comme une collection de procédures (comme prévu par Windev), puis d'appeler ces procédures. C'est la solution que j'utilise en ce moment. - de transformer les chaines avant l'envoi (et/ou après) en (ou à partir de) XML, Unicode, ANSI, OEM, URL, etc. - d'utiliser des chaines fixes, des chaînes de caractères ASCIIZ, des chaines UNICODE, etc., en tant que paramètres.
Rien ne me donne "Jérôme" ou "Zoé" :-(
J'ai vraiment besoin de votre aide. J'espère que quelqu'un a la solution.
//------------- code Windev pour Hello_Name (code dans un bouton)
stResultat est STHello_NameResponse stTexteAEnvoyer est chaîne // j’ai essayé aussi: stTexteAEnvoyer est STHello_Name //et aussi: stTexteAEnvoyer est chaîne UNICODE, etc.... // // // j’ai essayé: stTexteAEnvoyer:m_name="Jérôme" // et aussi: stTexteAEnvoyer=AnsiVersUnicode("Jérôme") stTexteAEnvoyer="Jérôme" stResultat=Hello_Name(stTexteAEnvoyer, "my_login", "my_password") // j’ai essayé: stRésultat=Hello_Name(stTexteAEnvoyer:m_name, "mon_login", "mon_password") Info(stResultat:m_Hello_NameResult) // et aussi stResultat:m_Hello_NameResult=XMLVersTexte(stResultat:m_Hello_NameResult) Info(stResultat:m_Hello_NameResult)
//------------- code Windev pour voir_users_meeting (code dans un bouton) //c’est juste un exemple de tous mes essais….. stResultat est STvoir_users_meetingResponse sTexteAEnvoyer est chaîne sTexteAEnvoyer="1234" stResultat=voir_users_meeting(sTexteAEnvoyer) stResultat:m_voir_users_meetingResult=XMLVersTexte(stResultat:m_voir_users_m eetingResult) Info(stResultat:m_voir_users_meetingResult)
"JC" <jeanclaude.tarby@gmail.com> a écrit dans le message de
news:aa420fd5-4f7b-492b-bf54-6bf56aa46690@m73g2000hsh.googlegroups.com...
Bonjour,
J’espère que quelqu’un m’apportera la solution car j'ai déjà perdu 6
jours de travail à chercher partout des solutions, et tous mes projets
sont bloqués à cause de ce problème ...
Je dois utiliser les services Web, mais j'ai un sérieux problème avec
les chaînes non ASCII (par exemple celles avec des accents, tel que
"Jérôme").
Voici deux morceaux de mon code : un extrait du WSDL, et des boutons
pour utiliser deux fonctions très simples du service Web.
- La première fonction (qui me sert de test pour l'envoi avec accent)
est Hello_Name (aName, aLogin, aPwd), qui utilise 3 chaînes de
caractères comme paramètres et renvoie simplement le paramètre
"aName" dans le message "Bonjour mon cher aName". Si j’envoie "John",
je reçois "Bonjour mon cher John", mais si j’envoie "Jérôme", je
reçois "Bonjour mon cher J?R?me" et pas "Bonjour mon cher Jérôme".
Quand je teste ce service web en Flash ou C#, je n'ai aucun problème
avec les accents, je reçois "Bonjour mon cher Jérôme".
J'ai essayé beaucoup de solutions, mais je suppose 'pas la bonne'. Par
exemple, j'ai essayé:
- des appels avec SOAP.name [], SOAP.type []…
- l'importation du webservice comme une collection de procédures
(comme prévu par Windev), puis d'appeler ces procédures. C'est la
solution que j'utilise en ce moment.
- de transformer les chaines avant l'envoi (et/ou après) en (ou à
partir de) XML, Unicode, ANSI, OEM, URL, etc.
- d'utiliser des chaines fixes, des chaînes de caractères ASCIIZ, des
chaines UNICODE, etc., en tant que paramètres.
Rien ne me donne "Jérôme" ou "Zoé" :-(
J'ai vraiment besoin de votre aide. J'espère que quelqu'un a la
solution.
//------------- code Windev pour Hello_Name (code dans un bouton)
stResultat est STHello_NameResponse
stTexteAEnvoyer est chaîne
// j’ai essayé aussi: stTexteAEnvoyer est STHello_Name
//et aussi: stTexteAEnvoyer est chaîne UNICODE, etc....
//
//
// j’ai essayé: stTexteAEnvoyer:m_name="Jérôme"
// et aussi: stTexteAEnvoyer=AnsiVersUnicode("Jérôme")
stTexteAEnvoyer="Jérôme"
stResultat=Hello_Name(stTexteAEnvoyer, "my_login", "my_password")
// j’ai essayé: stRésultat=Hello_Name(stTexteAEnvoyer:m_name,
"mon_login", "mon_password")
Info(stResultat:m_Hello_NameResult)
// et aussi
stResultat:m_Hello_NameResult=XMLVersTexte(stResultat:m_Hello_NameResult)
Info(stResultat:m_Hello_NameResult)
//------------- code Windev pour voir_users_meeting (code dans un
bouton)
//c’est juste un exemple de tous mes essais…..
stResultat est STvoir_users_meetingResponse
sTexteAEnvoyer est chaîne
sTexteAEnvoyer="1234"
stResultat=voir_users_meeting(sTexteAEnvoyer)
stResultat:m_voir_users_meetingResult=XMLVersTexte(stResultat:m_voir_users_m
eetingResult)
Info(stResultat:m_voir_users_meetingResult)
J’espère que quelqu’un m’apportera la solution car j'ai déjà perdu 6 jours de travail à chercher partout des solutions, et tous mes projets sont bloqués à cause de ce problème ...
Je dois utiliser les services Web, mais j'ai un sérieux problème avec les chaînes non ASCII (par exemple celles avec des accents, tel que "Jérôme").
Voici deux morceaux de mon code : un extrait du WSDL, et des boutons pour utiliser deux fonctions très simples du service Web.
- La première fonction (qui me sert de test pour l'envoi avec accent) est Hello_Name (aName, aLogin, aPwd), qui utilise 3 chaînes de caractères comme paramètres et renvoie simplement le paramètre "aName" dans le message "Bonjour mon cher aName". Si j’envoie "John", je reçois "Bonjour mon cher John", mais si j’envoie "Jérôme", je reçois "Bonjour mon cher J?R?me" et pas "Bonjour mon cher Jérôme". Quand je teste ce service web en Flash ou C#, je n'ai aucun problème avec les accents, je reçois "Bonjour mon cher Jérôme".
J'ai essayé beaucoup de solutions, mais je suppose 'pas la bonne'. Par exemple, j'ai essayé: - des appels avec SOAP.name [], SOAP.type []… - l'importation du webservice comme une collection de procédures (comme prévu par Windev), puis d'appeler ces procédures. C'est la solution que j'utilise en ce moment. - de transformer les chaines avant l'envoi (et/ou après) en (ou à partir de) XML, Unicode, ANSI, OEM, URL, etc. - d'utiliser des chaines fixes, des chaînes de caractères ASCIIZ, des chaines UNICODE, etc., en tant que paramètres.
Rien ne me donne "Jérôme" ou "Zoé" :-(
J'ai vraiment besoin de votre aide. J'espère que quelqu'un a la solution.
//------------- code Windev pour Hello_Name (code dans un bouton)
stResultat est STHello_NameResponse stTexteAEnvoyer est chaîne // j’ai essayé aussi: stTexteAEnvoyer est STHello_Name //et aussi: stTexteAEnvoyer est chaîne UNICODE, etc.... // // // j’ai essayé: stTexteAEnvoyer:m_name="Jérôme" // et aussi: stTexteAEnvoyer=AnsiVersUnicode("Jérôme") stTexteAEnvoyer="Jérôme" stResultat=Hello_Name(stTexteAEnvoyer, "my_login", "my_password") // j’ai essayé: stRésultat=Hello_Name(stTexteAEnvoyer:m_name, "mon_login", "mon_password") Info(stResultat:m_Hello_NameResult) // et aussi stResultat:m_Hello_NameResult=XMLVersTexte(stResultat:m_Hello_NameResult) Info(stResultat:m_Hello_NameResult)
//------------- code Windev pour voir_users_meeting (code dans un bouton) //c’est juste un exemple de tous mes essais….. stResultat est STvoir_users_meetingResponse sTexteAEnvoyer est chaîne sTexteAEnvoyer="1234" stResultat=voir_users_meeting(sTexteAEnvoyer) stResultat:m_voir_users_meetingResult=XMLVersTexte(stResultat:m_voir_users_m eetingResult) Info(stResultat:m_voir_users_meetingResult)
//------fin du code
Romain PETIT
JC avait prétendu :
Bonjour,
Bonjour,
//----------partie concernée du WSDL------------ <?xml version="1.0" encoding="utf-8" ?>
A mon avis tu reçois de l'UTF-8...
-- Romain PETIT http://cerbermail.com/?O16kfXOFcq (cliquez sur le lien ci-dessus pour me contacter en privé)
JC avait prétendu :
Bonjour,
Bonjour,
//----------partie concernée du WSDL------------
<?xml version="1.0" encoding="utf-8" ?>
A mon avis tu reçois de l'UTF-8...
--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
//----------partie concernée du WSDL------------ <?xml version="1.0" encoding="utf-8" ?>
A mon avis tu reçois de l'UTF-8...
-- Romain PETIT http://cerbermail.com/?O16kfXOFcq (cliquez sur le lien ci-dessus pour me contacter en privé)
JC
- UTF8, OK, mais pour les envois vers le web service, comment faire ? j'ai essayé de convertir avant, après, ne pas convertir, rien n'a marché. Par exemple:
A force de chercher, je ne vois plus rien... Qu'est-ce que je fais mal ?
- pour le retour, en effet, ça marche. Je suis certain d'avoir essayé, mais je n'ai pas du le faire sur les retours. J'ai du le faire que sur les envois à force de tester dans tous les sens :-( Ca donne ça comme code : stRésultat=voir_users_meeting(sTexteAEnvoyer) stRésultat:m_voir_users_meetingResult=UTF8VersChaîne(stRésultat:m_v oir_users_meetingResult)
JC
- UTF8, OK, mais pour les envois vers le web service, comment faire ?
j'ai essayé de convertir avant, après, ne pas convertir, rien n'a
marché. Par exemple:
A force de chercher, je ne vois plus rien... Qu'est-ce que je fais
mal ?
- pour le retour, en effet, ça marche. Je suis certain d'avoir essayé,
mais je n'ai pas du le faire sur les retours. J'ai du le faire que sur
les envois à force de tester dans tous les sens :-(
Ca donne ça comme code :
stRésultat=voir_users_meeting(sTexteAEnvoyer)
stRésultat:m_voir_users_meetingResult=UTF8VersChaîne(stRésultat:m_v oir_users_meetingResult)
- UTF8, OK, mais pour les envois vers le web service, comment faire ? j'ai essayé de convertir avant, après, ne pas convertir, rien n'a marché. Par exemple:
A force de chercher, je ne vois plus rien... Qu'est-ce que je fais mal ?
- pour le retour, en effet, ça marche. Je suis certain d'avoir essayé, mais je n'ai pas du le faire sur les retours. J'ai du le faire que sur les envois à force de tester dans tous les sens :-( Ca donne ça comme code : stRésultat=voir_users_meeting(sTexteAEnvoyer) stRésultat:m_voir_users_meetingResult=UTF8VersChaîne(stRésultat:m_v oir_users_meetingResult)
JC
patrice
Remarque préliminaire: j'ai pas trop compris tes tests, mais on dirait que tu envoi une valeur à un webservice et tu vérifie le retour si ton envoi ET ton retour n'est pas fiable, tu risque la grosse prise de tete.
1/ pour tester l'envoi au webservice: log dans un ficheir texte sur le serveur 2/ pour tester la réception d'un webservice, fait envoyer au webservice une valeur fixé (par exemple zoé)
ton but sera alors de chercher : 1/ quoi envoyer pour avoir zoé logger dans le txt 2/ quoi décoder pour obteneir zoé
AMHA, les seuls essais à faire coté envoi sont : zoé, textevershtml(zoé), texteversutf8(zoé) et communique nous les résultats
"JC" a écrit dans le message de news: - UTF8, OK, mais pour les envois vers le web service, comment faire ? j'ai essayé de convertir avant, après, ne pas convertir, rien n'a marché. Par exemple:
A force de chercher, je ne vois plus rien... Qu'est-ce que je fais mal ?
- pour le retour, en effet, ça marche. Je suis certain d'avoir essayé, mais je n'ai pas du le faire sur les retours. J'ai du le faire que sur les envois à force de tester dans tous les sens :-( Ca donne ça comme code : stRésultat=voir_users_meeting(sTexteAEnvoyer) stRésultat:m_voir_users_meetingResult=UTF8VersChaîne(stRésultat:m_voir_users _meetingResult)
JC
Remarque préliminaire: j'ai pas trop compris tes tests, mais on dirait que
tu envoi une valeur à un webservice et tu vérifie le retour
si ton envoi ET ton retour n'est pas fiable, tu risque la grosse prise de
tete.
1/ pour tester l'envoi au webservice: log dans un ficheir texte sur le
serveur
2/ pour tester la réception d'un webservice, fait envoyer au webservice une
valeur fixé (par exemple zoé)
ton but sera alors de chercher :
1/ quoi envoyer pour avoir zoé logger dans le txt
2/ quoi décoder pour obteneir zoé
AMHA, les seuls essais à faire coté envoi sont :
zoé, textevershtml(zoé), texteversutf8(zoé)
et communique nous les résultats
"JC" <jeanclaude.tarby@gmail.com> a écrit dans le message de
news:cb9a4e17-16ee-4c77-af99-f056ee9c7330@y21g2000hsf.googlegroups.com...
- UTF8, OK, mais pour les envois vers le web service, comment faire ?
j'ai essayé de convertir avant, après, ne pas convertir, rien n'a
marché. Par exemple:
A force de chercher, je ne vois plus rien... Qu'est-ce que je fais
mal ?
- pour le retour, en effet, ça marche. Je suis certain d'avoir essayé,
mais je n'ai pas du le faire sur les retours. J'ai du le faire que sur
les envois à force de tester dans tous les sens :-(
Ca donne ça comme code :
stRésultat=voir_users_meeting(sTexteAEnvoyer)
stRésultat:m_voir_users_meetingResult=UTF8VersChaîne(stRésultat:m_voir_users
_meetingResult)
Remarque préliminaire: j'ai pas trop compris tes tests, mais on dirait que tu envoi une valeur à un webservice et tu vérifie le retour si ton envoi ET ton retour n'est pas fiable, tu risque la grosse prise de tete.
1/ pour tester l'envoi au webservice: log dans un ficheir texte sur le serveur 2/ pour tester la réception d'un webservice, fait envoyer au webservice une valeur fixé (par exemple zoé)
ton but sera alors de chercher : 1/ quoi envoyer pour avoir zoé logger dans le txt 2/ quoi décoder pour obteneir zoé
AMHA, les seuls essais à faire coté envoi sont : zoé, textevershtml(zoé), texteversutf8(zoé) et communique nous les résultats
"JC" a écrit dans le message de news: - UTF8, OK, mais pour les envois vers le web service, comment faire ? j'ai essayé de convertir avant, après, ne pas convertir, rien n'a marché. Par exemple:
A force de chercher, je ne vois plus rien... Qu'est-ce que je fais mal ?
- pour le retour, en effet, ça marche. Je suis certain d'avoir essayé, mais je n'ai pas du le faire sur les retours. J'ai du le faire que sur les envois à force de tester dans tous les sens :-( Ca donne ça comme code : stRésultat=voir_users_meeting(sTexteAEnvoyer) stRésultat:m_voir_users_meetingResult=UTF8VersChaîne(stRésultat:m_voir_users _meetingResult)
JC
JC
On 10 juil, 12:23, "patrice" wrote:
Remarque préliminaire: j'ai pas trop compris tes tests, mais on dirait que tu envoi une valeur à un webservice et tu vérifie le retour
en gros, c'est ca.
1/ pour tester l'envoi au webservice: log dans un ficheir texte sur le serveur
c'est déjà fait, et tous mes essais en Windev donnent des "?" à la place des accents, alors que le même test en C# ou Flash donne bien des accents corrects dans le log.
2/ pour tester la réception d'un webservice, fait envoyer au webservice une valeur fixé (par exemple zoé)
ça aussi, c'est la fonction voir_users.... ; elle renvoie toujours la même chaine , et avec les réponses ci-dessus, je sais à présent décoder les accents qui me sont renvoyés par le WS.
AMHA, les seuls essais à faire coté envoi sont : zoé, textevershtml(zoé), texteversutf8(zoé) et communique nous les résultats
j'ai retesté avec tout ceci, et ça donne toujours des "?" côté serv eur (ou bien les caractères de codage UTF8, HTML, etc.) :-( sTexteEnvoyé=TexteVersXML(ChaîneVersUTF8("Jérôme")) //sTexteEnvoyé=TexteVersXML("Jérôme") //sTexteEnvoyé=ChaîneVersUTF8("Jérôme") //sTexteEnvoyé="Jérôme" //sTexteEnvoyé=TexteVersHTML(ChaîneVersUTF8("Jérôme")) //sTexteEnvoyé=TexteVersHTML("Jérôme")
On 10 juil, 12:23, "patrice" <patrice_labracherie_nos...@free.fr>
wrote:
Remarque préliminaire: j'ai pas trop compris tes tests, mais on dirait que
tu envoi une valeur à un webservice et tu vérifie le retour
en gros, c'est ca.
1/ pour tester l'envoi au webservice: log dans un ficheir texte sur le
serveur
c'est déjà fait, et tous mes essais en Windev donnent des "?" à la
place des accents, alors que le même test en C# ou Flash donne bien
des accents corrects dans le log.
2/ pour tester la réception d'un webservice, fait envoyer au webservice une
valeur fixé (par exemple zoé)
ça aussi, c'est la fonction voir_users.... ; elle renvoie toujours la
même chaine , et avec les réponses ci-dessus, je sais à présent
décoder les accents qui me sont renvoyés par le WS.
AMHA, les seuls essais à faire coté envoi sont :
zoé, textevershtml(zoé), texteversutf8(zoé)
et communique nous les résultats
j'ai retesté avec tout ceci, et ça donne toujours des "?" côté serv eur
(ou bien les caractères de codage UTF8, HTML, etc.) :-(
sTexteEnvoyé=TexteVersXML(ChaîneVersUTF8("Jérôme"))
//sTexteEnvoyé=TexteVersXML("Jérôme")
//sTexteEnvoyé=ChaîneVersUTF8("Jérôme")
//sTexteEnvoyé="Jérôme"
//sTexteEnvoyé=TexteVersHTML(ChaîneVersUTF8("Jérôme"))
//sTexteEnvoyé=TexteVersHTML("Jérôme")
Remarque préliminaire: j'ai pas trop compris tes tests, mais on dirait que tu envoi une valeur à un webservice et tu vérifie le retour
en gros, c'est ca.
1/ pour tester l'envoi au webservice: log dans un ficheir texte sur le serveur
c'est déjà fait, et tous mes essais en Windev donnent des "?" à la place des accents, alors que le même test en C# ou Flash donne bien des accents corrects dans le log.
2/ pour tester la réception d'un webservice, fait envoyer au webservice une valeur fixé (par exemple zoé)
ça aussi, c'est la fonction voir_users.... ; elle renvoie toujours la même chaine , et avec les réponses ci-dessus, je sais à présent décoder les accents qui me sont renvoyés par le WS.
AMHA, les seuls essais à faire coté envoi sont : zoé, textevershtml(zoé), texteversutf8(zoé) et communique nous les résultats
j'ai retesté avec tout ceci, et ça donne toujours des "?" côté serv eur (ou bien les caractères de codage UTF8, HTML, etc.) :-( sTexteEnvoyé=TexteVersXML(ChaîneVersUTF8("Jérôme")) //sTexteEnvoyé=TexteVersXML("Jérôme") //sTexteEnvoyé=ChaîneVersUTF8("Jérôme") //sTexteEnvoyé="Jérôme" //sTexteEnvoyé=TexteVersHTML(ChaîneVersUTF8("Jérôme")) //sTexteEnvoyé=TexteVersHTML("Jérôme")
Je comprend pas textevershtml nik les accents tu devrais avoir (au pire) pour zoé : zoé t'est sur que t'as pas une conversion qq part ?
"JC" a écrit dans le message de news: On 10 juil, 12:23, "patrice" wrote:
Remarque préliminaire: j'ai pas trop compris tes tests, mais on dirait que tu envoi une valeur à un webservice et tu vérifie le retour
en gros, c'est ca.
1/ pour tester l'envoi au webservice: log dans un ficheir texte sur le serveur
c'est déjà fait, et tous mes essais en Windev donnent des "?" à la place des accents, alors que le même test en C# ou Flash donne bien des accents corrects dans le log.
2/ pour tester la réception d'un webservice, fait envoyer au webservice
une
valeur fixé (par exemple zoé)
ça aussi, c'est la fonction voir_users.... ; elle renvoie toujours la même chaine , et avec les réponses ci-dessus, je sais à présent décoder les accents qui me sont renvoyés par le WS.
AMHA, les seuls essais à faire coté envoi sont : zoé, textevershtml(zoé), texteversutf8(zoé) et communique nous les résultats
j'ai retesté avec tout ceci, et ça donne toujours des "?" côté serveur (ou bien les caractères de codage UTF8, HTML, etc.) :-( sTexteEnvoyé=TexteVersXML(ChaîneVersUTF8("Jérôme")) //sTexteEnvoyé=TexteVersXML("Jérôme") //sTexteEnvoyé=ChaîneVersUTF8("Jérôme") //sTexteEnvoyé="Jérôme" //sTexteEnvoyé=TexteVersHTML(ChaîneVersUTF8("Jérôme")) //sTexteEnvoyé=TexteVersHTML("Jérôme")
Je comprend pas
textevershtml nik les accents
tu devrais avoir (au pire) pour zoé : zoé
t'est sur que t'as pas une conversion qq part ?
"JC" <jeanclaude.tarby@gmail.com> a écrit dans le message de
news:6d596627-4a28-482d-8776-a7774a0834fa@x41g2000hsb.googlegroups.com...
On 10 juil, 12:23, "patrice" <patrice_labracherie_nos...@free.fr>
wrote:
Remarque préliminaire: j'ai pas trop compris tes tests, mais on dirait que
tu envoi une valeur à un webservice et tu vérifie le retour
en gros, c'est ca.
1/ pour tester l'envoi au webservice: log dans un ficheir texte sur le
serveur
c'est déjà fait, et tous mes essais en Windev donnent des "?" à la
place des accents, alors que le même test en C# ou Flash donne bien
des accents corrects dans le log.
2/ pour tester la réception d'un webservice, fait envoyer au webservice
une
valeur fixé (par exemple zoé)
ça aussi, c'est la fonction voir_users.... ; elle renvoie toujours la
même chaine , et avec les réponses ci-dessus, je sais à présent
décoder les accents qui me sont renvoyés par le WS.
AMHA, les seuls essais à faire coté envoi sont :
zoé, textevershtml(zoé), texteversutf8(zoé)
et communique nous les résultats
j'ai retesté avec tout ceci, et ça donne toujours des "?" côté serveur
(ou bien les caractères de codage UTF8, HTML, etc.) :-(
sTexteEnvoyé=TexteVersXML(ChaîneVersUTF8("Jérôme"))
//sTexteEnvoyé=TexteVersXML("Jérôme")
//sTexteEnvoyé=ChaîneVersUTF8("Jérôme")
//sTexteEnvoyé="Jérôme"
//sTexteEnvoyé=TexteVersHTML(ChaîneVersUTF8("Jérôme"))
//sTexteEnvoyé=TexteVersHTML("Jérôme")
Je comprend pas textevershtml nik les accents tu devrais avoir (au pire) pour zoé : zoé t'est sur que t'as pas une conversion qq part ?
"JC" a écrit dans le message de news: On 10 juil, 12:23, "patrice" wrote:
Remarque préliminaire: j'ai pas trop compris tes tests, mais on dirait que tu envoi une valeur à un webservice et tu vérifie le retour
en gros, c'est ca.
1/ pour tester l'envoi au webservice: log dans un ficheir texte sur le serveur
c'est déjà fait, et tous mes essais en Windev donnent des "?" à la place des accents, alors que le même test en C# ou Flash donne bien des accents corrects dans le log.
2/ pour tester la réception d'un webservice, fait envoyer au webservice
une
valeur fixé (par exemple zoé)
ça aussi, c'est la fonction voir_users.... ; elle renvoie toujours la même chaine , et avec les réponses ci-dessus, je sais à présent décoder les accents qui me sont renvoyés par le WS.
AMHA, les seuls essais à faire coté envoi sont : zoé, textevershtml(zoé), texteversutf8(zoé) et communique nous les résultats
j'ai retesté avec tout ceci, et ça donne toujours des "?" côté serveur (ou bien les caractères de codage UTF8, HTML, etc.) :-( sTexteEnvoyé=TexteVersXML(ChaîneVersUTF8("Jérôme")) //sTexteEnvoyé=TexteVersXML("Jérôme") //sTexteEnvoyé=ChaîneVersUTF8("Jérôme") //sTexteEnvoyé="Jérôme" //sTexteEnvoyé=TexteVersHTML(ChaîneVersUTF8("Jérôme")) //sTexteEnvoyé=TexteVersHTML("Jérôme")
bRes est un booléen // jai masqué qqs infos dans la ligne ci-dessous (URL, paramètres ) bRes=SOAPExécute("http://...", "Hello_Name", " ", " ") SI PAS bRes ALORS SI SOAPErreur(SOAPErrMessage)~="" ALORS Erreur(ErreurInfo()) SINON Erreur(SOAPErreur(SOAPErrMessage)) FIN FIN
docres est une chaîne="docres" res est un Service.STHello_NameResponse XMLDocument(docres,SOAPDonneRésultat(SOAPRésultatXML)) SI PAS XMLExécuteXPath(docres,"//*/*[local- name()='Hello_NameResponse']") ALORS RENVOYER res FIN SI XMLTrouve(docres) ALORS
sidRes est une chaîne =XMLDonnée(docres,"href") SI sidRes<>"" ALORS sidRes=sidRes[[2 A ]] XMLExécuteXPath(docres, "//*/*/*[@id='"+sidRes+"']") FIN
Service._STHello_NameResponse_DepuisXML(res, docres); FIN RENVOYER res
FIN: XMLTermine(docres)
Au cas où, je vous donne aussi les procédures privées générées par Windev :
PROCEDURE PRIVÉE _STHello_Name_DepuisXML(param est un STHello_Name, doc est une chaîne) nPosInit est un entier=XMLSauvePosition(doc) sPosition est une chaîne = XMLPosition(doc) nPosBody est un entier=Position(sPosition, "Body") SI nPosBody=0 ALORS XMLRetourPosition(doc,nPosInit) RETOUR FIN sID est une chaîne SI XMLExécuteXPath(doc, sPosition+"/*[local-name()='name']") ALORS sID = XMLDonnée(doc,"href") SI sID<>"" ALORS sID=sID[[2 A ]] SI PAS XMLExécuteXPath(doc, "//*/*/*[@id='"+sID+"']") ALORS XMLExécuteXPath(doc, sPosition+"/*[local-name()='name']") FIN FIN param:m_name=XMLDonnée(doc) FIN
SI XMLExécuteXPath(doc, sPosition+"/*[local-name()='login']") ALORS sID = XMLDonnée(doc,"href") SI sID<>"" ALORS sID=sID[[2 A ]] SI PAS XMLExécuteXPath(doc, "//*/*/*[@id='"+sID+"']") ALORS XMLExécuteXPath(doc, sPosition+"/*[local-name()='login']") FIN FIN param:m_login=XMLDonnée(doc) FIN
SI XMLExécuteXPath(doc, sPosition+"/*[local-name()='pwd']") ALORS sID = XMLDonnée(doc,"href") SI sID<>"" ALORS sID=sID[[2 A ]] SI PAS XMLExécuteXPath(doc, "//*/*/*[@id='"+sID+"']") ALORS XMLExécuteXPath(doc, sPosition+"/*[local-name()='pwd']") FIN FIN param:m_pwd=XMLDonnée(doc) FIN
XMLRetourPosition(doc, nPosInit)
PROCEDURE PRIVÉE _STHello_Name_VersXML(param, doc, nom, sID) nPos est un entier
SI Taille(nom)>0 ALORS XMLAjouteFils(doc,nom,"",Vrai) XMLAjouteAttribut(doc,"xsi:type","lns:Hello_Name") XMLAjouteAttribut(doc,"xmlns:lns"," ") SI Taille(sID)>0 ALORS XMLAjouteAttribut(doc,"id","id" + sID) FIN FIN XMLAjouteFils(doc,"name",param:m_name) XMLAjouteFils(doc,"login",param:m_login) XMLAjouteFils(doc,"pwd",param:m_pwd)
SI Taille(nom)>0 ALORS XMLParent(doc)
PROCEDURE PRIVÉE _STHello_NameResponse_DepuisXML(param est un STHello_NameResponse, doc est une chaîne) nPosInit est un entier=XMLSauvePosition(doc) sPosition est une chaîne = XMLPosition(doc) nPosBody est un entier=Position(sPosition, "Body") SI nPosBody=0 ALORS XMLRetourPosition(doc,nPosInit) RETOUR FIN sID est une chaîne SI XMLExécuteXPath(doc, sPosition+"/*[local- name()='Hello_NameResult']") ALORS sID = XMLDonnée(doc,"href") SI sID<>"" ALORS sID=sID[[2 A ]] SI PAS XMLExécuteXPath(doc, "//*/*/*[@id='"+sID+"']") ALORS XMLExécuteXPath(doc, sPosition+"/*[local- name()='Hello_NameResult']") FIN FIN param:m_Hello_NameResult=XMLDonnée(doc) FIN
XMLRetourPosition(doc, nPosInit)
PROCEDURE PRIVÉE _STHello_NameResponse_VersXML(param, doc, nom, sID) nPos est un entier
SI Taille(nom)>0 ALORS XMLAjouteFils(doc,nom,"",Vrai) XMLAjouteAttribut(doc,"xsi:type","lns:Hello_NameResponse") XMLAjouteAttribut(doc,"xmlns:lns"," ") SI Taille(sID)>0 ALORS XMLAjouteAttribut(doc,"id","id" + sID) FIN FIN XMLAjouteFils(doc,"Hello_NameResult",param:m_Hello_NameResult)
SI Taille(nom)>0 ALORS XMLParent(doc)
Voilà, vous avez tout le code. Quelles sont vos propositions ?
bRes est un booléen
// jai masqué qqs infos dans la ligne ci-dessous (URL, paramètres )
bRes=SOAPExécute("http://...", "Hello_Name", " ", " ")
SI PAS bRes ALORS
SI SOAPErreur(SOAPErrMessage)~="" ALORS
Erreur(ErreurInfo())
SINON
Erreur(SOAPErreur(SOAPErrMessage))
FIN
FIN
docres est une chaîne="docres"
res est un Service.STHello_NameResponse
XMLDocument(docres,SOAPDonneRésultat(SOAPRésultatXML))
SI PAS XMLExécuteXPath(docres,"//*/*[local-
name()='Hello_NameResponse']") ALORS
RENVOYER res
FIN
SI XMLTrouve(docres) ALORS
sidRes est une chaîne =XMLDonnée(docres,"href")
SI sidRes<>"" ALORS
sidRes=sidRes[[2 A ]]
XMLExécuteXPath(docres, "//*/*/*[@id='"+sidRes+"']")
FIN
Service._STHello_NameResponse_DepuisXML(res, docres);
FIN
RENVOYER res
FIN:
XMLTermine(docres)
Au cas où, je vous donne aussi les procédures privées générées par
Windev :
PROCEDURE PRIVÉE _STHello_Name_DepuisXML(param est un STHello_Name,
doc est une chaîne)
nPosInit est un entier=XMLSauvePosition(doc)
sPosition est une chaîne = XMLPosition(doc)
nPosBody est un entier=Position(sPosition, "Body")
SI nPosBody=0 ALORS
XMLRetourPosition(doc,nPosInit)
RETOUR
FIN
sID est une chaîne
SI XMLExécuteXPath(doc, sPosition+"/*[local-name()='name']") ALORS
sID = XMLDonnée(doc,"href")
SI sID<>"" ALORS
sID=sID[[2 A ]]
SI PAS XMLExécuteXPath(doc, "//*/*/*[@id='"+sID+"']") ALORS
XMLExécuteXPath(doc, sPosition+"/*[local-name()='name']")
FIN
FIN
param:m_name=XMLDonnée(doc)
FIN
SI XMLExécuteXPath(doc, sPosition+"/*[local-name()='login']") ALORS
sID = XMLDonnée(doc,"href")
SI sID<>"" ALORS
sID=sID[[2 A ]]
SI PAS XMLExécuteXPath(doc, "//*/*/*[@id='"+sID+"']") ALORS
XMLExécuteXPath(doc, sPosition+"/*[local-name()='login']")
FIN
FIN
param:m_login=XMLDonnée(doc)
FIN
SI XMLExécuteXPath(doc, sPosition+"/*[local-name()='pwd']") ALORS
sID = XMLDonnée(doc,"href")
SI sID<>"" ALORS
sID=sID[[2 A ]]
SI PAS XMLExécuteXPath(doc, "//*/*/*[@id='"+sID+"']") ALORS
XMLExécuteXPath(doc, sPosition+"/*[local-name()='pwd']")
FIN
FIN
param:m_pwd=XMLDonnée(doc)
FIN
XMLRetourPosition(doc, nPosInit)
PROCEDURE PRIVÉE _STHello_Name_VersXML(param, doc, nom, sID)
nPos est un entier
SI Taille(nom)>0 ALORS
XMLAjouteFils(doc,nom,"",Vrai)
XMLAjouteAttribut(doc,"xsi:type","lns:Hello_Name")
XMLAjouteAttribut(doc,"xmlns:lns"," ")
SI Taille(sID)>0 ALORS
XMLAjouteAttribut(doc,"id","id" + sID)
FIN
FIN
XMLAjouteFils(doc,"name",param:m_name)
XMLAjouteFils(doc,"login",param:m_login)
XMLAjouteFils(doc,"pwd",param:m_pwd)
SI Taille(nom)>0 ALORS XMLParent(doc)
PROCEDURE PRIVÉE _STHello_NameResponse_DepuisXML(param est un
STHello_NameResponse, doc est une chaîne)
nPosInit est un entier=XMLSauvePosition(doc)
sPosition est une chaîne = XMLPosition(doc)
nPosBody est un entier=Position(sPosition, "Body")
SI nPosBody=0 ALORS
XMLRetourPosition(doc,nPosInit)
RETOUR
FIN
sID est une chaîne
SI XMLExécuteXPath(doc, sPosition+"/*[local-
name()='Hello_NameResult']") ALORS
sID = XMLDonnée(doc,"href")
SI sID<>"" ALORS
sID=sID[[2 A ]]
SI PAS XMLExécuteXPath(doc, "//*/*/*[@id='"+sID+"']") ALORS
XMLExécuteXPath(doc, sPosition+"/*[local-
name()='Hello_NameResult']")
FIN
FIN
param:m_Hello_NameResult=XMLDonnée(doc)
FIN
XMLRetourPosition(doc, nPosInit)
PROCEDURE PRIVÉE _STHello_NameResponse_VersXML(param, doc, nom, sID)
nPos est un entier
SI Taille(nom)>0 ALORS
XMLAjouteFils(doc,nom,"",Vrai)
XMLAjouteAttribut(doc,"xsi:type","lns:Hello_NameResponse")
XMLAjouteAttribut(doc,"xmlns:lns"," ")
SI Taille(sID)>0 ALORS
XMLAjouteAttribut(doc,"id","id" + sID)
FIN
FIN
XMLAjouteFils(doc,"Hello_NameResult",param:m_Hello_NameResult)
SI Taille(nom)>0 ALORS XMLParent(doc)
Voilà, vous avez tout le code. Quelles sont vos propositions ?
bRes est un booléen // jai masqué qqs infos dans la ligne ci-dessous (URL, paramètres ) bRes=SOAPExécute("http://...", "Hello_Name", " ", " ") SI PAS bRes ALORS SI SOAPErreur(SOAPErrMessage)~="" ALORS Erreur(ErreurInfo()) SINON Erreur(SOAPErreur(SOAPErrMessage)) FIN FIN
docres est une chaîne="docres" res est un Service.STHello_NameResponse XMLDocument(docres,SOAPDonneRésultat(SOAPRésultatXML)) SI PAS XMLExécuteXPath(docres,"//*/*[local- name()='Hello_NameResponse']") ALORS RENVOYER res FIN SI XMLTrouve(docres) ALORS
sidRes est une chaîne =XMLDonnée(docres,"href") SI sidRes<>"" ALORS sidRes=sidRes[[2 A ]] XMLExécuteXPath(docres, "//*/*/*[@id='"+sidRes+"']") FIN
Service._STHello_NameResponse_DepuisXML(res, docres); FIN RENVOYER res
FIN: XMLTermine(docres)
Au cas où, je vous donne aussi les procédures privées générées par Windev :
PROCEDURE PRIVÉE _STHello_Name_DepuisXML(param est un STHello_Name, doc est une chaîne) nPosInit est un entier=XMLSauvePosition(doc) sPosition est une chaîne = XMLPosition(doc) nPosBody est un entier=Position(sPosition, "Body") SI nPosBody=0 ALORS XMLRetourPosition(doc,nPosInit) RETOUR FIN sID est une chaîne SI XMLExécuteXPath(doc, sPosition+"/*[local-name()='name']") ALORS sID = XMLDonnée(doc,"href") SI sID<>"" ALORS sID=sID[[2 A ]] SI PAS XMLExécuteXPath(doc, "//*/*/*[@id='"+sID+"']") ALORS XMLExécuteXPath(doc, sPosition+"/*[local-name()='name']") FIN FIN param:m_name=XMLDonnée(doc) FIN
SI XMLExécuteXPath(doc, sPosition+"/*[local-name()='login']") ALORS sID = XMLDonnée(doc,"href") SI sID<>"" ALORS sID=sID[[2 A ]] SI PAS XMLExécuteXPath(doc, "//*/*/*[@id='"+sID+"']") ALORS XMLExécuteXPath(doc, sPosition+"/*[local-name()='login']") FIN FIN param:m_login=XMLDonnée(doc) FIN
SI XMLExécuteXPath(doc, sPosition+"/*[local-name()='pwd']") ALORS sID = XMLDonnée(doc,"href") SI sID<>"" ALORS sID=sID[[2 A ]] SI PAS XMLExécuteXPath(doc, "//*/*/*[@id='"+sID+"']") ALORS XMLExécuteXPath(doc, sPosition+"/*[local-name()='pwd']") FIN FIN param:m_pwd=XMLDonnée(doc) FIN
XMLRetourPosition(doc, nPosInit)
PROCEDURE PRIVÉE _STHello_Name_VersXML(param, doc, nom, sID) nPos est un entier
SI Taille(nom)>0 ALORS XMLAjouteFils(doc,nom,"",Vrai) XMLAjouteAttribut(doc,"xsi:type","lns:Hello_Name") XMLAjouteAttribut(doc,"xmlns:lns"," ") SI Taille(sID)>0 ALORS XMLAjouteAttribut(doc,"id","id" + sID) FIN FIN XMLAjouteFils(doc,"name",param:m_name) XMLAjouteFils(doc,"login",param:m_login) XMLAjouteFils(doc,"pwd",param:m_pwd)
SI Taille(nom)>0 ALORS XMLParent(doc)
PROCEDURE PRIVÉE _STHello_NameResponse_DepuisXML(param est un STHello_NameResponse, doc est une chaîne) nPosInit est un entier=XMLSauvePosition(doc) sPosition est une chaîne = XMLPosition(doc) nPosBody est un entier=Position(sPosition, "Body") SI nPosBody=0 ALORS XMLRetourPosition(doc,nPosInit) RETOUR FIN sID est une chaîne SI XMLExécuteXPath(doc, sPosition+"/*[local- name()='Hello_NameResult']") ALORS sID = XMLDonnée(doc,"href") SI sID<>"" ALORS sID=sID[[2 A ]] SI PAS XMLExécuteXPath(doc, "//*/*/*[@id='"+sID+"']") ALORS XMLExécuteXPath(doc, sPosition+"/*[local- name()='Hello_NameResult']") FIN FIN param:m_Hello_NameResult=XMLDonnée(doc) FIN
XMLRetourPosition(doc, nPosInit)
PROCEDURE PRIVÉE _STHello_NameResponse_VersXML(param, doc, nom, sID) nPos est un entier
SI Taille(nom)>0 ALORS XMLAjouteFils(doc,nom,"",Vrai) XMLAjouteAttribut(doc,"xsi:type","lns:Hello_NameResponse") XMLAjouteAttribut(doc,"xmlns:lns"," ") SI Taille(sID)>0 ALORS XMLAjouteAttribut(doc,"id","id" + sID) FIN FIN XMLAjouteFils(doc,"Hello_NameResult",param:m_Hello_NameResult)
SI Taille(nom)>0 ALORS XMLParent(doc)
Voilà, vous avez tout le code. Quelles sont vos propositions ?
JCT
patrice
donc il suffirait d'encoder en utf8 à l'envoi et de décoder l'utf8 à la réception ?
"JC" a écrit dans le message de news: • Avec sTexteEnvoyé=TexteVersHTML(ChaîneVersUTF8("Jérôme ")), j’envoie Jérôme et je reçois Jérôme
donc il suffirait d'encoder en utf8 à l'envoi et de décoder l'utf8 à la
réception ?
"JC" <jeanclaude.tarby@gmail.com> a écrit dans le message de
news:2c9c08bc-329b-4d79-9f9a-b4f5387004e1@a1g2000hsb.googlegroups.com...
• Avec sTexteEnvoyé=TexteVersHTML(ChaîneVersUTF8("Jérôme ")), j’envoie
Jérôme et je reçois
Jérôme
donc il suffirait d'encoder en utf8 à l'envoi et de décoder l'utf8 à la réception ?
"JC" a écrit dans le message de news: • Avec sTexteEnvoyé=TexteVersHTML(ChaîneVersUTF8("Jérôme ")), j’envoie Jérôme et je reçois Jérôme
Romain PETIT
patrice a présenté l'énoncé suivant :
donc il suffirait d'encoder en utf8 à l'envoi et de décoder l'utf8 à la réception ?
J'allais le dire :-)
-- Romain PETIT http://cerbermail.com/?O16kfXOFcq (cliquez sur le lien ci-dessus pour me contacter en privé)
patrice a présenté l'énoncé suivant :
donc il suffirait d'encoder en utf8 à l'envoi et de décoder l'utf8 à la
réception ?
J'allais le dire :-)
--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)