bonjour à tous,
Est il possible d'utiliser les fonctions de lecture readln et écriture writeln avec des caractères UTF-8 (Chinois ou Arabe par exemple) ?
Merci d'avance,
Wilco
bonjour à tous,
Est il possible d'utiliser les fonctions de lecture readln et écriture writeln avec des caractères UTF-8 (Chinois ou Arabe par exemple) ?
Merci d'avance,
Wilco
Oui en utilisant UTF8Encode et UTF8Decode, respectivement avant l'écriture et après la lecture
Certains caractères ANSI (le 14 ou 26) peuvent poser problème lors d'un Append (en fait il tronque le fichier à l'endroit du caractère, bon j'ai vu cela il y a 8 ans, je pense que mon constat est bon mais pas fréquent), et avec l'UTF8 tu peux avoir ce type de valeur lors de caractère multi-octet
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Merci pour cette réponse mais quand je fais un UTF8Encode(chaine_en_arabe) avant de faire un writeln, dans le fichier j'obtiens des ???????????.
Que puis je faire ?
Je fais des essais avec les fonctions UTF8.
Avec le code ci-dessous, s2 ne récupère pas la chaine initiale ('ﻞﻴﺣﺭ') .
var
s1: WideString;
s2: UTF8String;
s1 := UTF8Decode('ﻞﻴﺣﺭ');
s2 := UTF8Encode(s1);
Qu'est ce que je fais de mal ?
Merci d'avance,
Wilco
Déjà en Delphi, tu ne dois pas pouvoir écrire l'Arabe sauf si tu es en Delphi 2009, 2010 ou XE
si doit être UTF8 sinon tu as plein de conversion implicite
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager