Localhost
-
8 sept. 2017 à 02:10
LaluneBe
Messages postés7Date d'inscriptionvendredi 29 septembre 2017StatutMembreDernière intervention11 octobre 2017
-
10 oct. 2017 à 14:42
Bonjour,
Je développe un petit programme sous visual basic 6.0 et j'espere ecrire des caractère spéciaux dans un contrôle textbox comme par exemple ä ou ö etc... (Ecriture en Allemand) mais j'arrive pas à le faire, toujours il m'affiche"?" au lieu de mon caractère.
Pouvez vous m'aider s'il vous plait? Et merci d'avance.
NHenry
Messages postés15050Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention30 mars 2023156 8 sept. 2017 à 18:56
Mon intervention ne va pas beaucoup aider, mais l'internationalisation n'est pas le fort de VB6, il ne gère que les page des codes 1octet=1car.
Je te recommande de passer sur .NET qui lui est natif unicode.
Sinon, peut être voir en changeant la page de code active de ton système et/ou d'utiliser les runtimes Allemands de VB6.
Salut,
Tout dépend de l'encodage de la TextBox.
Généralement nous sommes en UNICODE (UTF-16)
Donc, il te faut prendre une police adéquate, comportant les caractère spéciaux désirés.
Utilise une police standard et vérifie cette police avec "Charmap.exe" pour ces caractères.
Dans le cas d'un copier/coller dans une textbox, tu dois rendre conforme la chaîne de caractère avant l'insertion en utilisant StrConv("abc", vbFromUnicode)
Pour convertir le codage de l'Unicode vers l'UTF8, utilise la fonction WinApi 'WideCharToMultiByte' avec le protocole CP_UTF8.
Attention, si tu voies des caractères bizarres à la place des accents "Â" ou "@"... Tu as sûrement oublié le header de fichier!
Au protocole UTF8, il faut 3 octets en début de fichier...
Donc, avant le texte tu dois ajouter:
Print #fHandle2, Chr(&HEF) & Chr(&HBB) & Chr(&HBF) & "ton texte"
Sinon, tu verras le texte en "Plain text", donc non encodé utf-8.