IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Encore des histoires d'encodage…


Sujet :

Lazarus Pascal

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 196
    Points : 435
    Points
    435
    Par défaut Encore des histoires d'encodage…
    Bonjour,

    J'ai écrit avant-hier un petit bloc-notes qui notamment transforme les caractères accentués, diacritiques, etc. en entités HTML de type é ou é et effectue la conversion inverse.
    Après les quelques cafouillages habituels avec ansitoutf8 et utf8toansi, ça a marché presque du premier coup sous Windows.
    Mais quand je compile sous Linux (avec la même version de Lazarus), la conversion produit des couples de caractères commençant par à ou à et le décodage du résultat rend bien les caractères originaux. J'en déduis évidemment que sous Linux, en dépit d'utf8toansi, on traite des caractères de plusieurs octets, mais pourquoi les choses se passent-elles différemment sous Linux ?
    Mon code est plutôt vilain, mais je domine ma honte pour joindre quand même le projet qui fonctionne avec la version Windows.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 469
    Points : 1 100
    Points
    1 100
    Par défaut
    Bonjour

    Tu devrais en dire un peu plus, car on ne voit pas très bien où se situe ton problème.
    Pour les fonctionnalités que tu décris je ne vois pas où on peut avoir besoin des fonctions d'encodage AnsiToUtf8 et inverse.

    Si tu as besoin d'extraire des sous-chaines, il faut utiliser Utf8Copy et non pas Copy, et mettre le même préfixe devant la plupart des autres fonctions sur les chaînes de caractères.
    Il est certes possible de convertir une saisie Utf8 en Ansi, d'utiliser les fonctions classiques, puis de reconvertir en Utf8 pour afficher, mais c'est un peu lourd.
    D'autant qu'en FPC 3.0 le problème sera réglé, les fonctions sans préfixe Utf8 feront la même chose qu'avec, de manière transparente.

    La seule différence entre Windows et Linux se situe au niveau des noms de fichiers qui, sous Windows, sont encore encodés dans un jeu ISO alors que Lazarus attend de l''UTF8. Il suffit d'utiliser SysToUtf8 au lieu de AnsiToUtf8 (et inversement) pour que le programme soit portable et que les noms de fichiers avec accents passent bien.

Discussions similaires

  1. [C#] histoire de commit et de roolback
    Par dupin40 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 18/05/2021, 17h45
  2. Encodage de cd en fichier mp3
    Par clovis dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 08/04/2004, 01h13
  3. [ENCODAGE][JAVA]Afficher correctement des accents
    Par kornelius dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 17/02/2004, 16h37
  4. Encodages DOS et Windows
    Par Aramis dans le forum Langage
    Réponses: 5
    Dernier message: 09/11/2003, 17h55
  5. [VB6] fonction d' encodage URL en VB
    Par jeanseb dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/01/2003, 11h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo