warenbe
Messages postés145Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 septembre 2009
-
6 janv. 2006 à 00:29
vb95
Messages postés3417Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention20 mai 2023
-
24 avril 2021 à 15:32
Yop Yop
me revoila avec mes questions habituelles
si vous vous souvenez de moi j'avais eu des problemes a une epoque pour l'envoi de fichier en post et tout
bon c'est resolu et maintenant je sais tuot faire
mais je voulais cette fois juste envoyer du texte en post comme un formulaire
le probleme c'est que des que je met des accents sur mon texte, sur la base sql du serveur je reçoit que des ? a la place des caracteres accentués!
:(
j'ai sniffé mon port 80 et j'ai vu que les packets contenaient aussi les ? a la place des accents
j'ai donc fais un petit "messagebox.show(texte)" pour voir si mon texte etait affiché avec des accents avant l'envoi et tout va bien a ce niveau la
donc j'en ai conclu que c'est lors de l'envoi du post que ça change
je ne vois cepandant pas de solutions :(
a l'aide!
voila mon code:
//envoi des données en POST à l'url http:***************.php
string texte = rttexte.Text + "\n(Commentaire)";
DateTime date = DateTime.Now;
string sdate = date.Year.ToString() + "-";
if (date.Month < 10)
sdate = sdate + "0" + date.Month.ToString() + "-";
else
sdate = sdate + date.Month.ToString() + "-";
if (date.Day < 10)
sdate = sdate + "0" + date.Day.ToString();
else
sdate = sdate + date.Day.ToString();
MessageBox.Show(texte); //ici je verifie que le champ "texte" soit bien avec des accents. jusque la tout va bien
//les donnees a poster au serveur
StringBuilder strData = new StringBuilder();
strData.Append("comments_auteur=" + tbauteur.Text);
strData.Append("&comments_texte=" + texte);
strData.Append("&news_id=" + "");
strData.Append("&comments_serie=" + tbserie.Text);
strData.Append("&comments_date=" + sdate);
//On transforme le tout en tableau de byte
byte[] dataToPost = new ASCIIEncoding().GetBytes(strData.ToString());
// On cree la requete Http
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http:*********.php");
//On specifie la commande a utiliser dans notre cas POST
// Envoi de donnes au programme situ l'URL spcifie
myRequest.Method = "POST";
//Le type de contenu du corps de la requte
myRequest.ContentType = "application/x-www-form-urlencoded";
//Longueur du corps de la requte
myRequest.ContentLength = dataToPost.Length;
//On ecris les donnee dans la requete
Stream myStream = myRequest.GetRequestStream();
// Envoie des donnees
myStream.Write(dataToPost, 0, dataToPost.Length);
myStream.Close();
//On recupere la reponse
WebResponse myResponse = myRequest.GetResponse();
//on cree un flux
Stream responseStream = myResponse.GetResponseStream();
//On instancie un objet de type streamreader
StreamReader streamReader = new StreamReader(responseStream);
//On lit la totalite du flux
string result = streamReader.ReadToEnd();
//on ferme les flux
streamReader.Close();
responseStream.Close();
myResponse.Close();
myStream.Close();
MessageBox.Show("Envoyé!");
this.Close();
A voir également:
C# remove accents
C# string remove accents - Meilleures réponses
C# remove accents from string - Meilleures réponses
Macky92
Messages postés2Date d'inscriptionvendredi 23 avril 2021StatutMembreDernière intervention23 avril 2021 23 avril 2021 à 15:36
je n'ai pas bien saisie la reponse. pouver etre plus precis.
vb95
Messages postés3417Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention20 mai 2023165
>
Macky92
Messages postés2Date d'inscriptionvendredi 23 avril 2021StatutMembreDernière intervention23 avril 2021 24 avril 2021 à 15:32
Bonjour
15 ans après je doute que vous allez avoir une réponse .
Surtout que la dernière intervention de warenbee sur le site date de 2009
warenbe
Messages postés145Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 septembre 2009 9 janv. 2006 à 09:57
é pour le "é"
&eagrave; pour le "è"
à pour le "à"
<<< remmplacer par le code ça ne marche pas. quand je regarde dans la base de donnée apres on ne voit meme plus le texte
apparement c'est le caractere & qui fait ça :(
sinon pour l'autre methode que tu me proposes elle me va pas car d'une part le texte est visible sur le net apres et donc je ne dois pas devoir modifier le
script php pour qu'il prenne en compte ces modifications
d'autre part, ça me parait "cochon" (barbare comme tu dis) :)
pour l'autre proposition:
En faisant
sr = new StreamReader(httpWResponse.GetResponseStream(), System.Text.Encoding.GetEncoding("iso-8859-1"));
Peut-être ??
ça c'est pour la reception de la reponse
a la limite m'en fous de al reception moi c'est lorsque j'envoi le string texte que je dois gerer ça
mais je vais essayer de trouver une solution qui y ressemble
warenbe
Messages postés145Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 septembre 2009 9 janv. 2006 à 10:58
bon j'ai ete bete
puor encoder differement il suffit de changer la ligne:
byte[] dataToPost = new ASCIIEncoding().GetBytes(strData.ToString());
j'ai essayé avec unicode, utf8, utf7 utf32 mais rien a faire... ça marche pas
j'ai donc essayer de mixer ça avec les codes pour les accents (&eagrave etc)
mais rien n'y fais
si je suis en utf8 je suis avec des caracteres bizarres, sinon des des fois j'ai meme plus les lignes avec des accents..
etc :(
23 avril 2021 à 15:36
24 avril 2021 à 15:32
15 ans après je doute que vous allez avoir une réponse .
Surtout que la dernière intervention de warenbee sur le site date de 2009