CharSet - StringBuilder

bucherb Messages postés 412 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 13 août 2007 - 29 oct. 2004 à 14:34
jesaipa_1 Messages postés 63 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 16 mai 2007 - 9 févr. 2006 à 11:02
Hello!!

J'ai un problème, j'ai un stringbuilder qui est rempli par une application C++, alimentée par un tableau de byte, et je reçois des caractères unicodes dans le stringbuilder alors que je dois travailler en byte, donc en ascii de 0 à 255 et je reçois des valeurs comme 3280 etc.

Alors comment puis-je faire pour changer le charset du stringbuilder pour utiliser uniquement de l'ascii, puisque c'est ce que l'application C++ met dedans..

Help Please!!

-------------------------
Trambert le vert
A voir également:

11 réponses

taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
29 oct. 2004 à 15:32
C'"est bien difficile à comprendre ton problème, on ,enfin je vois pas bien comment tout cela marche.
Avec un bout de code, ca serait plus simple.

comme ca, je dirais,( sans y connaitre grand chose):
soit ton appli c++ ne renvoie pas des caratères ascii,
soit il y a un problème avec string builder.

comment ton appli c++ envoie les caractères,
n'est t'il pas possible de faire une conversion de la valeur unicode en ascii avant d'alimenter ton string builder ( voir dans namespace System.Text je pense)

Apres, à priori, à moins d'avoir rencontrer exactement le meme probleme, et donc de voir le probleme avec toutes ses caractèrisituqes, il me semble bien difficile de répondre. Complète un peu la cause du probleme .
0
bucherb Messages postés 412 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 13 août 2007
29 oct. 2004 à 17:23
Ben l'appli C# file un tableau de charactères automatiquement casté dans le stringbuilder en unicode.

Et rien a faire pour empêcher ça snif..

A moins de faire son propre stringbuilder?

-------------------------
Trambert le vert
0
bucherb Messages postés 412 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 13 août 2007
29 oct. 2004 à 17:26
Le big problème c'est que les string sont en unicode...

Qqun saurait comment faire pour avoir une string en ascii?

-------------------------
Trambert le vert
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
30 oct. 2004 à 12:12
Avec la classe Encoding, tu ne peux rien faire ?

Encoding.Convert(Encoding.Unicode, Encoding.ASCII,  myBytes);


Je n'ai jamais testé, mais j'essaie juste de te donner des idées.

Mx
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bucherb Messages postés 412 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 13 août 2007
30 oct. 2004 à 14:36
Malheureusement, déjà essayé, et ça me converti tout les caractères spéciaux vers le même caractère, donc ça fonctionne pas :(

-------------------------
Trambert le vert
0
Miltiades Messages postés 233 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 octobre 2010
2 nov. 2004 à 14:02
c normal que les carateres spéciaux passent à l'as en passant en ASCII, l'ascii possede 255 caracteres alors qu'unicode en possede ... un peu plus :big) ... tes caracteres spéciaux dependent du jeu de caracteres ascii que tu utilise!
0
bucherb Messages postés 412 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 13 août 2007
2 nov. 2004 à 14:12
Ouais ça je suis au courant, mais est-ce que quelqu'un peut m'expliquer pourquoi les caractère qui sortent de l'appli C++ sont entre 0 et 255, et que dans mon stringbuilder je reçois des caractère unicode genre 3280 !?

Je me pête la tête contre le mur..

-------------------------
Trambert le vert
0
Miltiades Messages postés 233 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 octobre 2010
3 nov. 2004 à 13:56
c'est une question de standards...
C# utilise l'unicode car c'est le standard actuel et c++ l'ascii ...

a mon avis le plus simple a faire c'est d'utiliser tes caracteres unicode en c++ (jette un oeil au types wchar, w..., etc... ;) )
0
bucherb Messages postés 412 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 13 août 2007
3 nov. 2004 à 14:03
Bon ben c'est toujours pas clair on dirait lol

Dans l'appli C++ c'est un tableau de byte.. donc de 0 à 255.. et vu qu'un tableau de byte c'est pareil qu'un tableau de char en c++, ça me met ça dans une string, mais quand la string arrive côté C# elle est en unicode..

Donc la question est : Est-ce qu'il y a un moyen de changer le charset des string/stringbuilder en ascii plutot qu'en unicode..
Sans passer par une structure...

-------------------------
Trambert le vert
0
cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 1
6 avril 2005 à 09:40
As tu résolu ton Pb car je suis confronté au même...

En clair, je donne le caractère € (ou tout autre caractère de la table ASCII étendue) et il faut que ça me retourne 128 (ou l'équivalent pour les autres)

David, à VERSAILLES
0
jesaipa_1 Messages postés 63 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 16 mai 2007
9 févr. 2006 à 11:02
ouai moi aussi j'ai le meme probleme
il faut aparament un Char qui ne represente pas un Char unicode mais plutot un Char qui prend en compte la norme iso-8859-1
mais le pb c'est que je ne sais pas comment faire si ta trouver quelques choses fait nous le partager
merci
0
Rejoignez-nous