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

C++/CLI Discussion :

Encodage des cha�nes de caract�res


Sujet :

C++/CLI

  1. #1
    Membre exp�riment�
    Avatar de StormimOn
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par d�faut Encodage des cha�nes de caract�res
    Bonjour,

    Ma question va sembler "b�te", mais je suis confront� � quelque chose que je ne comprends pas donc je veux m'assurer d'une chose avant tout.

    En .Net les cha�nes de caract�res sont en unicode il me semble, quelle que soit l'origine de la donn�e (lecture du contenu d'un fichier, ...). Si je converti ma cha�ne de caract�res en un pointeur (char *) avec la m�thode StringToHGlobalAnsi pour ensuite recr�er une cha�ne de caract�res manag�e
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    String ^ s1 = "äâàëêéèïîìöôòüûù";	
    char * c = static_cast<char*>(Marshal::StringToHGlobalAnsi(s1).ToPointer());	
    String ^ s2 = gcnew String(c, 0, s1->Length, Encoding::Default);
    il n'y a aucune "perte" possible au niveau des caract�res et heureusement d'ailleurs, sinon bonjour le bordel. J'ai tout bon ou pas ?

    Je pose cette question parce que j'ai une API qui prend en entr�e un char *, j'ai encapsul� l'appel � l'API dans un wrapper C++/CLI appel� par du C# et ce qui est bizarre c'est que suivant l'origine de la cha�ne de caract�res (lecture d'un fichier ou en dur dans le code), l'API ne r�agit pas de la m�me fa�on.

    En fait je me fait jeter avec un message d'erreur comme quoi le format de la cha�ne d'entr�e est incorrect dans le cas o� je passe par la lecture d'un fichier (j'utilise File.ReadAllText(chemin, Encoding.UTF8) pour la lecture) et la seule chose qui me vienne � l'esprit c'est un probl�me d'encodage des donn�es.

    Si j'ai tout bon, il faudra que je vois du c�t� de l'API.

  2. #2
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    Salut StormimOn,

    je ne suis pas un pro des encodages, d'ailleurs ca m'enerve

    mais ce qui est certain c'est qu'un char ne peut contenir qu'un octet, donc une valeur ascii entre 0 et 255. C'est l'int�ret de l'unicode ou des utf-32, de pouvoir stocker plus de valeurs afin de g�rer plus de caract�res.

    Donc, si tu convertis en char, il y a une possibilit� de perte, enfin je pense

    Pourquoi tu n'utilises pas des wchar_t unicode ? la conversion est plus simple et moins risqu�e en plus. A moins que ton api n'ait besoin de char *

  3. #3
    Membre exp�riment�
    Avatar de StormimOn
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par d�faut
    Ok, donc dans mon cadre il n'y a pas de risque de perte de donn�es (stockage UTF-8 ou en dur dans le code, sans utilisation de caract�res sp�ciaux, donc compatible avec le char *). Je vais essayer de voir du c�t� de l'API si je peux avoir des infos.

    Merci

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Encodage des cha�nes de caract�res en arabe
    Par elghali_sofiene dans le forum VB 6 et ant�rieur
    R�ponses: 1
    Dernier message: 19/04/2007, 18h10
  2. [VBS]Gestion des cha�nes de caract�res
    Par Edoxituz dans le forum VBScript
    R�ponses: 11
    Dernier message: 29/01/2006, 17h07
  3. Gestion des cha�nes de caract�res
    Par Furius dans le forum VBScript
    R�ponses: 5
    Dernier message: 06/01/2006, 15h01
  4. Probl�me sur des cha�nes de caract�res
    Par Anonymous dans le forum Access
    R�ponses: 9
    Dernier message: 16/09/2005, 08h21
  5. Passage des cha�nes de caract�res � une application CGI
    Par Thom@s dans le forum Composants VCL
    R�ponses: 10
    Dernier message: 03/12/2004, 00h13

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