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

MFC Discussion :

Unicode, Cstring et utf8


Sujet :

MFC

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Par défaut Unicode, Cstring et utf8
    Bonsoir,
    Je suis entrain de coder une petite application permettant d'ajouter des données sur une base Mysql, seulement je dois pouvoir y mettre du chinois donc de l'Unicode...

    Et la fonction mysql_query n'accepte que les CStringA et pas les CStringW, si je transforme l'un en l'autre je me retrouve avec des ?????? à la place des caractères chinois.( logique d'un coté )

    D'après ce que je comprends, CStringW est en Unicode et je dois le convertir en utf8 et mettre cet utf8 dans un CStringA qui lui saura être envoyé dans mon mysql_query.
    Mais voila, c'est dans cette conversion que je ne trouve rien, j'ai bien vu dans la Faq ceci http://cpp.developpez.com/faq/vc/?pa...F8EncodeString
    En changeant la petite erreur dans le paramètre, j’arrive bien à envoyé ma chaine CStringW, mais ce que Mysql reçoit est foireux
    Chaine envoyée : 扩大试点卡萨
    Chaine reçue : 扩大ðˆ•点å¡ðˆ¨

    Est-ce que vous pouvez m'aider à résoudre ce problème? Svp

    Merci beaucoup

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 461
    Par défaut
    Les ???, c'est peut-être pas une erreur mais l'utilisation d'une police n'ayant pas ces caractères. Bien peu de police contiennent l'ensemble des caractères Unicode (je dirais même aucune).

  3. #3
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par tosqualler Voir le message
    Chaine envoyée : 扩大试点卡萨
    Chaine reçue : 扩大ðˆ•点å¡ðˆ¨
    C'est peut être pas foireux

    Peut être que ce qu'il y a en base est la représentation UTF8 de ta string Unicode mais que tu es trompé par l'affichage qui ne sait pas gérer correctement l'UTF-8.

    Essaye de le valider en faisant un programme UNICODE qui lise dans la base, retransforme l'UTF-8 reçu en unicode et l'affiche correctement, tu aura peut être (ou pas ?) une bonne surprise.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Par défaut
    C'est phpmyadmin qui m'affiche les ????? et les caractères bizarres. Si je rentre les caractères unicode par ce dernier, il n'y a aucun problème :s
    Je vais tester de lire par un programme des caractère utf8

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 461
    Par défaut
    Très souvent, ce genre d'IHM Web ne gère pas correctement les caractères étendu par une utilisation totalement foireuse du char-set de la page Web.

    Le problème est vraisemblablement dans la page php, pas dans les données.
    En résumé, tu regarde à travers des lunettes déformantes les données dans la base.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Par défaut
    Quand je rentre dans mon prog ceci : 扩大试点卡萨
    PhpMyAdmin me montre ça :扩大ðˆ•点å¡ðˆ¨
    et mon script php cela : 扩大�点卡�
    Et les ? en noir sont causé par la fonction trouvée dans la Faq :: UTF8EncodeString(const CStringW str)
    ->Donc faudrait corriger la fonction et ça roule :o

    Le plus étonnant c'est que si j'entre 扩大试点卡萨 dans phpmyadmin
    Ce dernier me montre : 扩大试点卡萨
    mais mon script php me donne : ??????
    ->Donc faudrait que je joue avec des utf8_encode() et utf8_decode() du php mais je sais plus utiliser mon prog
    C'est à ni rien comprendre :s

    Je crois que je vais tout passer par interface web, je ne devrais plus avoir de problème avec l'Unicode...Mais je perd le fait que j'arrive à assez bien gérer les CString...

    Edit ::
    -> J'ai fait d'autres test avec d'autres caractères chinois, et on dirait qu'il y en as peu qui m'affiche le �, donc si j'arrive à résoudre se problème tout sera parfait
    -> Quand je met Firefox en ISO, mes caractères s'affiche à la façon "é", "î", "Ã", ...
    http://electron-libre.fassnet.net/utf8.php
    J'en conclu que je suis bien en utf8, mais ce dernier est peut être foireux du à la fonction...Et que phpmyadmin foire un peu avec l'affichage des caractères...

Discussions similaires

  1. Déterminer le Type fichier texte unicode, utf8?
    Par soazig dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 08/02/2007, 22h12
  2. [unicode] Convertir CString en Char[]
    Par dacid dans le forum Visual C++
    Réponses: 7
    Dernier message: 31/05/2006, 09h22
  3. impact de l'Unicode pour les CString
    Par ep31 dans le forum MFC
    Réponses: 5
    Dernier message: 02/12/2005, 16h01
  4. [i18n][utf8] Outils pour convertir iso8859-1 en unicode/utf8
    Par co2 dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 07/11/2005, 09h56
  5. CFile && CString en UNICODE
    Par Racailloux dans le forum MFC
    Réponses: 3
    Dernier message: 05/04/2005, 10h42

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