PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Qui maîtrise UTF8, ANSI, UNICODE !!!???
Qui maîtrise UTF8, ANSI, UNICODE !!!???
Débuté par BlueSky77, 26 nov. 2014 23:23 - 4 réponses
Membre enregistré
20 messages
Popularité : +1 (1 vote)
Posté le 26 novembre 2014 - 23:23
Bonjour à tous,
[windev mobile v17.0.203]

Je rencontre une situation que je ne maîtrise pas :

1) un fichier text encodé en ANSI + UTF8 (ou UTF16 ?)
par exemple en binaire (hexa) : 31 33 38 30 CB AE C0 E4 BF D5 B5 B7 BB FA
représente : 1380 et les signes à voir dans l'image (fonte SimSun, alphabet chinois simplifié)




donc 1380 (31 33 38 30) : un caractère = 8 bits
CB AE C0 E4 BF D5 B5 B7 BB FA : chaque caractère est composé de 2 x 8 bits

CB AE =





2) mon projet est en ANSI

3) ma table est en chaine ansi

4) j'intègre le fichier texte dans ma table par lecture fouvre(), extrait les lignes flitligne(),
et affectation des rubriques matable.monchamp = machaine
ajoute hajoute().

5) Pour mon application, j'utilise le multilingue et au début de mon code j'ajoute :
Nation(nationChinois)
ChangeAlphabet(alphabetChinois,langueChinois,2,1)

6) sur le PDA, j'ai ajouté le package "yam East Asian Fonts" + "yam Reloadnls"
afin d'obtenir l'affichage des fontes chinoises

7) dans une fenetre, je crée un champ table et l'associe à une requête select





=> c'est ok

8) dans une fenêtre, je crée un libellé, je code juste :
houvre(matable)
hlitpremier(matable)

monlibellé1=matable.monchamp1
=> l'affichage n'est pas bien "encodé" comme si la lecture "castait"

9) par requete
je crée une requete
j'ajoute un champ libellé que je lie à la requête dans la description
hexecute("marequete")
fichierversecran(mafenetre,"marequete")
=> c'est OK !!!

10) par libellé relié à mon analyse dans la description
fichierversecran(mafenetre,"matable")
=> c'est OK !!!

Après de nombreuses heures à essayer de trouver une solution pour l'affichage correct de ces caractères,
j'en ai une même 2 !!!!
Par requete (9) qui m'oblige à exploiter une requete au lieu de ma table avec Hlitpremier, hlitrecherche, ...
Par liaison (10) qui m'oblige à lier mes champs et libellés à mes tables

Mais cela ne permet donc pas d'afficher une valeur lue dans une table pour la stocké en mémoire (variable) et l'affecter ultérieurement.

je n'ai trouver cette dernière solution !!!

Avez-vous déjà été confronté à cela ? avez-vous des idées ?

Je suis "presque certain" qu'il doit y avoir une solution en utilisant un buffer, une conversion unicode/utf, ....

Mais je n'ai pas trouvé !

Merci de vos remarques et réponses.

;-)
Posté le 27 novembre 2014 - 10:40
J'ai été confronté au problème avec des fichiers texte utf8 multilingues et retour chariot linux.
venant de http://www.geonames.org.

Ma seule façon de contourné le problème a été d'être passé par une ouverture sous excel
puis j'ai pu mettre dans une base hfsql en mettant une rubrique unicode
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 04 décembre 2014 - 23:47
ProcedureWS_Android_IOS_HTTPGetResult()

// Variable
bufResHTTP is Buffer
sHTTPResult isstring

// Retrieves the result of the query
bufResHTTP=HTTPGetResult(httpResult)

// Result in UTF8 em iOS Apple
IFIniOSMode() =TrueORIniOSSimulatorMode() =TrueORIniOSEmulatorMode() =True
IFStringCount(bufResHTTP, “ISO-8859-1,IgnoreCase) =0THEN
sHTTPResult=UTF8ToString(bufResHTTP)
ELSE
sHTTPResult=AnsiToUnicode(bufResHTTP)
END
ELSE IFInAndroidMode() =TrueORInAndroidSimulatorMode() =TrueORInAndroidEmulatorMode() =True
// Result in Android
sHTTPResult=bufResHTTP
END

RESULTsHTTPResult
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 24 mars 2016 - 20:43
PREZADOS,

USE O COMANDO UTF8ToString OU AnsiToUnicode

Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.blogspot.com.br/
Message modifié, 24 mars 2016 - 20:44