IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 .NET Discussion :

Problème avec caractères spéciaux [Visual Studio 2010 C# Silverlight]


Sujet :

.NET

  1. #1
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Points : 74
    Points
    74
    Par défaut Problème avec caractères spéciaux [Visual Studio 2010 C# Silverlight]
    Bonjour,

    Le développement de mon application me bloque à un niveau que je ne maîtrise pas et je voulais savoir si quelqu’un ici a déjà rencontré ce problème. Je développe une application qui fait appel à du PHP pour écrire dans une bd mysql. Le seul problème que je rencontre c’est que lorsque je veux écrire : DEUG Sciences Sciences de la Matière Option MP 1995-1998 dans ma table j’obtiens : DEUG Sciences Sciences de la Matière Option MP 1995-1998.
    Chaque fois que j’ai des accents ou des caractères spéciaux je n’enregistre pas ce que je souhaite.
    Je mets ici le code qui me permet d’écrire dans ma base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public static string WriteFromObject(Etudiant user)
            {
         MemoryStream ms = new MemoryStream();
                // Serializer the User object to the stream.
                DataContractJsonSerializer ser = new      DataContractJsonSerializer(typeof(Etudiant));
                ser.WriteObject(ms, user);
                byte[] json = ms.ToArray();
                ms.Close();
                MessageBox.Show("JSON : " + json);
                return Encoding.UTF8.GetString(json, 0, json.Length);   
            }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    etd = new Etudiant();
                etd.civilite = Convert.ToString(comboBoxCivilite.SelectionBoxItem);
                etd.nom = textBoxNomEtudiant.Text;
                etd.prenom = textPrenomEtudiant.Text;
                etd.j_naissance = Convert.ToInt32(comboBoxJourNaissance.SelectionBoxItem);
                etd.m_naissance = Convert.ToString(comboBoxMoisNaissance.SelectionBoxItem);
                etd.a_naissance = Convert.ToInt32(comboBoxAnNaissance.SelectionBoxItem);
                etd.lieu_naissance = Convert.ToString(textBoxLieuNaissance.Text);
                etd.diplome = Convert.ToString(comboBoxDiplomesLus.SelectedValue);
                etd.mention = Convert.ToString(comboBoxMEntion.SelectionBoxItem);
                etd.annee_universitaire = Convert.ToInt32(comboBoxAnneeObtentionDiplome.SelectionBoxItem);
                etd.num_diplome_saisi = Convert.ToString(textBoxNumeroDiplome.Text);
                etd.ufr = ufrSelectionne;
                json = WriteFromObject(etd);
                wc.OpenReadAsync(new Uri(_CallbackUrl + "?" + "etudiant=" + json));
    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    bonjour,

    et si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    return Encoding.Default.GetString(json, 0, json.Length);

  3. #3
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par youtpout978 Voir le message
    bonjour,

    et si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    return Encoding.Default.GetString(json, 0, json.Length);
    Salut youpout,

    si je fais ce que tu as dit j'ai le message d'erreur :
    System.Text.Encoding ne contient pas de définition pour Default.

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    bizarre tu as quoi comme proposition dans Encoding. ?
    chez moi j'ai bien default

  5. #5
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par youtpout978 Voir le message
    bizarre tu as quoi comme proposition dans Encoding. ?
    chez moi j'ai bien default
    comme tu le dis c'est bizarre mais j'ai BigEndianUnicode, Unicode et UTF8

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    j'ai testé sur une page asp c'est pour ça en silverlight t'as moins de choix essaye alors unicode ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    return Encoding.GetEncoding(1252).GetString(json, 0, json.Length);
    en espérant que ça marche

  7. #7
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par youtpout978 Voir le message
    j'ai testé sur une page asp c'est pour ça en silverlight t'as moins de choix essaye alors unicode ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    return Encoding.GetEncoding(1252).GetString(json, 0, json.Length);
    en espérant que ça marche
    j'ai essayé avec return Encoding.GetEncoding("utf-8").GetString(json, 0, json.Length); mais ça ne marche pas. Penses-tu qu'un coup d'oeuil du coté ma base soit nécéssaire?

    Merci

  8. #8
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MessageBox.Show(Encoding.UTF8.GetString(json, 0, json.Length));
    pour voire déjà à quoi ressemble ta chaine de caractère

  9. #9
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par youtpout978 Voir le message
    tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MessageBox.Show(Encoding.UTF8.GetString(json, 0, json.Length));
    pour voire déjà à quoi ressemble ta chaine de caractère
    j'ai suivi tes recommendations et je suis même allé plus loin. Dans mon fichier php qui effectue l'écriture dans ma table je luis ai fait écrire en marge dans un fichier texte mon enregistrement. Le résulat est le suivant :
    - MessageBox.Show(Encoding.UTF8.GetString(json, 0, json.Length) montre que tout est bien. J'ai ce que je veux enregistrer.
    - Dans le fichier texte j'ai aussi ce que je veux.

    Donc le problème est en fait du côté de mon serveur WAMP 2.1

    Je vais donc regarder maintenant de ce côté la mais je ne sais pas si, à partir du moment où ce n'est plus un pb dotnet, je peux poster la solution ici.

    En tout cas merci pour ton aide.

  10. #10
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    de rien je crois un ami avait un problème dans le genre, ça venait d'un de ses fichiers de config php, sinon essaye d'inscrire directement ton texte en base pour voire si ça vient d'elle

  11. #11
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par youtpout978 Voir le message
    de rien je crois un ami avait un problème dans le genre, ça venait d'un de ses fichiers de config php, sinon essaye d'inscrire directement ton texte en base pour voire si ça vient d'elle
    C'est déjà testé et ça marche lorsque j'écris des caractères avec accent directement dans les champs de ma table

  12. #12
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    J'aurais tendance à dire que le problème vient de PHP qui a une gestion plus qu'hasardeuse des charsets

  13. #13
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par Nathanael Marchand Voir le message
    J'aurais tendance à dire que le problème vient de PHP qui a une gestion plus qu'hasardeuse des charsets
    merci de t'interesser à mon problème,

    voici la partie de mon code php qui écrit dans ma base. Peux tu me dire
    ce qui est hasardeux?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    if(isset($_GET['etudiant']))
    {
      $new_Etudiant = new Etudiant();  
      $new_Etudiant = json_decode($_GET['etudiant'], true);  
      echo $new_Etudiant["nom"];
      echo $new_Etudiant["prenom"];
     
     
     
      $query = "INSERT INTO `etudiant` 
      (`num_etudiant`, `civilite`, `nom`, 
    								   `prenom`, `diplome`, `mention`, `annee_universitaire`, 
    								   `ufr`, `lieu_naissance`, `j_naissance`, `m_naissance`, 
    								   `a_naissance`, `date_arrete`, `num_diplome_saisi`, `est_liste`)
      VALUES (NULL, \"". $new_Etudiant['civilite']  ."\",  
    				\"". $new_Etudiant['nom'] 		."\" , 
                    \"". $new_Etudiant['prenom']    ."\" , 
    				\"". $new_Etudiant['diplome']   ."\", 
    				\"". $new_Etudiant['mention']   ."\", 
    				\"". $new_Etudiant['annee_universitaire'] ."\", 
    				\"". $new_Etudiant['ufr'] ."\", 
    				\"". $new_Etudiant['lieu_naissance'] ."\", 
    				\"". $new_Etudiant['j_naissance'] ."\", 
    				\"". $new_Etudiant['m_naissance'] ."\", 
    				\"". $new_Etudiant['a_naissance'] ."\", 
    				\"". $new_Etudiant['date_arrete'] ."\", 
    				\"". $new_Etudiant['num_diplome_saisi'] ."\", 
    				\"". $new_Etudiant['est_liste'] ."\")";			        
     
     
      $result= $bdd->query($query);

  14. #14
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Ben disons que côté PHP, ca peut venir de plein d'endroits différents. Il est par exemple connu que PHP ne gère pas super bien l'unicode (pour PHP6?).
    Ca fait bien longtemps que je n'ai plus mis longtemps dans php, je ne pense pas être en mesure de pouvoir t'aider. C'était plutot pour te notifier de ne pas chercher que du côté de .Net.

  15. #15
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Points : 74
    Points
    74
    Par défaut
    je reviens ici pour préciser qu'au moment de l'insert je fais aussi la même écriture dans un fichier texte et que là tout se passe bien

    A bientôt

  16. #16
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Points : 74
    Points
    74
    Par défaut
    ok merci mais depuis que j'ai constaté que l'écriture se faisait correctement dans le fichier texte et à l'affichage par MessageBox je cherche du côté du paramètrage de php

    Merci encore Bye

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Problème avec ACCESS sous Visual Studio 2010
    Par Cyrodil91 dans le forum VB.NET
    Réponses: 0
    Dernier message: 27/06/2012, 15h18
  2. problème avec le debogueur visual studio
    Par coquelicot47 dans le forum Visual Studio
    Réponses: 0
    Dernier message: 27/08/2010, 20h30
  3. Problème avec le debugger Visual Studio 2008
    Par Zouch-K dans le forum Visual C++
    Réponses: 2
    Dernier message: 02/04/2010, 14h13
  4. Problème avec caractère spéciaux
    Par zooffy dans le forum ASP
    Réponses: 5
    Dernier message: 28/02/2007, 10h06
  5. [MySQL] Problèmes avec caractères spéciaux
    Par brokengillou dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/04/2006, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo