Probléme sur un Windows Chinois (probléme encodage)

narfight Messages postés 129 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 4 mars 2010 - 29 avril 2009 à 10:42
narfight Messages postés 129 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 4 mars 2010 - 29 avril 2009 à 13:36
Bonjour,

Je dois mettre en place une application sur un Windows en chinois mais j'ai un gros problème d'encodage de mes chaînes de caractère dans un cas bien spécifique.

La variable Txt n'a pas la même valeur sur windows en FR et Chinois. Hors je cherche une solution pour que le résultat soit comme sur la version FR.

J'ai cherché du coté du ChrW mais il me retourne pas exactement le même string.

Pouvez vous si vous avez une piste pour m'aider ?

La fonction de test :

Sub Conv(Chro() As Single, Txt As String)
Dim b(3) As Byte
Dim Max As Integer
Dim ifor As Long

Max = UBound(Chro)
For ifor = 0 To Max
CopyMemory b(0), Chro(ifor), 4
Txt = Txt + Chr(b(0)) + Chr(b(1)) + Chr(b(2)) + Chr(b(3))
Next
End Sub



Merci beaucoup d'avance,
Jean-Pierre Sneyers

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
29 avril 2009 à 10:56
Salut
Il te faut impérativement traiter toutes tes chaines en Unicode.
Sous VB6, les TextBox standards ne sont pas Unicode.

Single pour déclarer un chiffre entre 0 et 255 : quelle drôle d'idée ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
narfight Messages postés 129 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 4 mars 2010
29 avril 2009 à 11:13
oui, je sais pour le Single, en fait il a une sorte de serialization des données en string qui ne représente nullement un texte dans une langue chinoise ou en FR. c'est juste un string pour passer des données binaires.

Donc pour passer en unicode, je dois utiliser ChrW mais apres, pour convertir l'unicode en encodage français, il a une procédure ?

PS : désolé de la mise en page de mon 1er poste
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
29 avril 2009 à 13:07
Bah ... ça s'appelle une traduction !
La plage des caractères n'est pas la même d'une langue à l'autre.
Ton code ressemble à du .Net alors que tu as posté dans la catégorie VB6 : Difficile de savoir quoi te répondre.
En .Net, il doit y avoir une partie Framework délégué à ce genre de manip, avec des mots clés comme "convert" ou "codepage", il doit y avoir des indications dans l'aide.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
narfight Messages postés 129 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 4 mars 2010
29 avril 2009 à 13:36
Je travail bien en VB6.

Je suis en train de refaire une refonte du programme sans cette conversion des plus lourde et inutile.

Je te remercie beaucoup pour le temps que tu m'as consacré.
0
Rejoignez-nous