Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Salut tt le monde
j'ai une application PB7 avec des winform qui contient du texte en arabe
MAIS lorsque je migre en PB12.5 le texte arabe se transforme en caractères illisibles bizarres
aidez moi SVP pas de "urgent" dans le titre svp, c'est pas les urgences ici
Dernière modification par blali (05-07-2014 16:05:40)
Hors ligne
PB7 n'étant pas unicode tes caractères arabes était encodés avec un codepage du genre cp864 mais toujours compris dans un byte (0-255).
Est-ce que le texte est stocké dans le code source de ta fenêtre ou il provient de l’extérieur (fichier, base de données...) ?
Si il est dans le code source, il faudrait trouver quel est le codepage d'origine pour pouvoir faire la conversion vers l'unicode sur l'export de tes sources (fichiers *.sr?).
Essai de regarder dans PB7 en édition de code de ta fenêtre le menu Design > Option > Font : quelle est la police utilisée, cela pourrait peut-être donner un indice.
Hors ligne
Merci xlat de me dire comment puis je exporter mes fichiers *.sr?
sachant que lorsque je déroule le menu design/options/font sa me donne ' Fixedsys ' comme police
Hors ligne
j'ai oublié de signaler que ce problème de caractère vient seulement du code source des fenêtres;
les données qui provient de la base de donnée s'écrivent correctement en arabe
Hors ligne
blali a écrit:
Merci xlat de me dire comment puis je exporter mes fichiers *.sr?
- un par un via l'IDE : clic droit sur ton object dans le "system tree" et menu contextuel "Export..." et choisi le format Encoding: HEXASCII et tu aurras des chaines du genre $$HEX5$$ac2020003a2620003b26$$ENDHEX$$ dans le code exporté
- par lot via l'IDE : menu Tools/Library Painter, ensuite navigues vers ton projet et sur clic sur une librairie (*.pbl). Fais une multi-sélection des objets a exporter et clic droit > "export..."
- par lot via la ligne de commande, je te recommande d'utiliser un outil comme le pbdumper de seki:
PBDumper.exe --dir=sources --source-only --out-format=HEXA *.pbl
blali a écrit:
sachant que lorsque je déroule le menu design/options/font sa me donne ' Fixedsys ' comme police
Il faudrait regarder du côté du codepage par défaut dans ce cas (ouvre un "cmd.exe /k chcp").
blali a écrit:
j'ai oublié de signaler que ce problème de caractère vient seulement du code source des fenêtres;
les données qui provient de la base de donnée s'écrivent correctement en arabe
Arrives-tu a extraire un morceaux de code contenant du texte qui ne s'affiche pas correctement (par exemple l'initialisation de la propriété "text" d'un commandboutton) ?
Hors ligne
Bonjour xlat
j'ai pu exporter mes objets depuis PB7 en utilisant
menu Tools/Library Painter
j’édite ensuite une fenêtre en utilisant le bloc-note
les caractère arabe s'affichent bien en claire
MAIS
lorsque j'importe ces objets dans PB12.5 et j’édite le code source d'une fenêtre les caractère arabe devient illisibles
SACHANT QUE:
le même objet exporté depuis PB7 avec bloc-note s'affiche bien
mais depuis PB12.5 le code source du même objet les lettres arabe devient illisibles
------------------
La commande: cmd.exe /k chcp donne : Active code page: 720
crdt
Hors ligne
tu pourrais mettre à dispo un extrait exporté contenant ces caractères ?
Hors ligne
POUR LE MEME OBJET
Edit source du PB12.5 donne
----------------------------
integer x = 1449
integer y = 500
integer width = 448
integer height = 108
integer textsize = -11
integer weight = 700
fontcharset fontcharset = arabiccharset!
fontpitch fontpitch = variable!
string facename = "Traditional Arabic"
long textcolor = 8388608
long backcolor = 80269524
boolean enabled = false
string text = "ÅÓã ÇáãÓÊÚãá"
boolean focusrectangle = false
end type
----------------------------
Et Bloc-note donne
----------------------------
type st_1 from statictext within w_welcome
integer x = 1449
integer y = 500
integer width = 448
integer height = 108
integer textsize = -11
integer weight = 700
fontcharset fontcharset = arabiccharset!
fontpitch fontpitch = variable!
string facename = "Traditional Arabic"
long textcolor = 8388608
long backcolor = 80269524
boolean enabled = false
string text = "إسم المستعمل"
boolean focusrectangle = false
end type
----------------------------
Hors ligne
malheureusement, les caractères d'origines n'ont pas étés préservés lors du copier/coller, au mieux la version hexadécimal aiderait, mais j'ai déjà une piste :
- https://en.wikipedia.org/wiki/Code_page_720 : Cette page indique la conversion cp720 vers unicode
- http://www.lingua-systems.com/unicode-c … erter.html : Cet utilitaire permet d'ouvrir un fichier (le copier/coller semble ne pas fonctionner dans ce cas) et de le sauver (au format utf16), cela permettrait ce convertir tes fichiers, mais le hic, c'est que cela reste une opération manuelle.
Hors ligne
Hors ligne
Merci infiniment xlat
je suis entrain de tester l'outil .....
Hors ligne
l'outil uniconv rend les caractères arabes illisibles dans (Edit source PB12.5) et (Bloc-note)
Hors ligne
Autre information :
J'ouvre un fichier (obtenu avec UNICONV ) avec Firefox pour déterminer l'encodage des caractères et surprise le fichier affiche bien les caractères arabes en unicode (utf-8) càd que les fichiers sont bien enregistrés en unicode (utf-8) MAIS PB12.5 ne peut les afficher correctement !!!
Hors ligne
- http://www.lingua-systems.com/unicode-c … erter.html : Cet utilitaire ne s’exécute pas sur ma machine !!!
j'ai télécharger EditPad Pro et il m'a permis de convertir un fichier en utf16 et ça marche bien en PB12.5
MAIS j'ai 378 fichiers a convertir
heureusement avec vôtre aide précieuse je suis déjà sur les rails
Espérant trouver un outil qui fera ça a ma place hhh
CRDT
Hors ligne
Enfin j'ai pu migrer mon application PB7 en PB12.5
Grâce au outils suivants:
PB7 pour exporter tous les objets
EditPad Pro pour convertir les code page des fichiers *.sr? en utf-16-LE (j'ai exploiter les macros pour automatiser la conversion )
PB12.5 pour faire migrer mon application et Importer par la suite les fichiers (*.sr? traités précédemment) dans ma library pdl
Je tient a remercier XLAT qui ma illuminer le chemin
crdt
Hors ligne