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 :

Migration Delphi-Lazarus : problème d'encodage de caractères [Lazarus]


Sujet :

Lazarus Pascal

  1. #21
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Points : 28
    Points
    28
    Par défaut
    C'est pas possible !!!

    Le temps de prendre un café tu dis ???
    Bon, je vais me retirer sur la pointe des pieds...
    Et appliquer vos très bons conseils.
    En vous remerciant chaleureusement.

    À plus, sans doute sur un autre forum.

  2. #22
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 717
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 717
    Points : 15 094
    Points
    15 094
    Par défaut
    Yop !
    Citation Envoyé par mm_71 Voir le message
    Seule différence, chardet m'a donné Windows-1254 et pas 1252 ?
    C'est qui, celui-ci ?

    Ah, Charset tu veux dire !
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #23
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 852
    Points : 11 285
    Points
    11 285
    Billets dans le blog
    6
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  4. #24
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 717
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 717
    Points : 15 094
    Points
    15 094
    Par défaut
    Salut, Yves,
    Citation Envoyé par tourlourou Voir le message
    Oh, je crois que tu peux enlever ton point d'interrogation, ça doit surement être ça, quand on suit ton lien, c'est clair.

    Mais comment l'as-tu trouvé ? Ou tu le connaissais déjà ?
    Ben j'aurais encore appris un truc, aujourd'hui

    Moi qui pensais que mm_71 nous avait concocté un ch'tit prog pour récupérer ces infos, voilà qu'il va falloir se mettre au python,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  5. #25
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Points : 28
    Points
    28
    Par défaut
    Bonsoir,

    Je ne pensais pas revenir aussi vite.
    Après avoir ouvert ton exemple dans lequel toutes les lettres accentuées étaient bien là...
    J'ai sauvegardé, puis réouvert => Surprise ! Les lettres accentuées étaient remplacées par des "À@"...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    procedure TForm1.SauvegarderClick(Sender: TObject);
    var
    Personne : TPersonne;
    fichier : FichierPersonnes;
    ligne : integer;
     
    begin
    System.Assign(fichier, 'Memo.txt');
    Rewrite(fichier);
    for ligne := 1 to StringGrid1.RowCount-1 do
      with StringGrid1.Rows[ligne], Personne do
      begin
       Identite := strings[0];   //CP1252ToUTF8(strings[0]); (idem avec CP1254...
       Prive := strings[1];
       Bureau := strings[2];
       Fax := strings[3];
       Portable := strings [4];
       NET := strings[5];
       EMail := strings[6];
       Adresse := strings[7];  //CP1252ToUTF8(strings[7]);
       Notes := strings[8];   //CP1252ToUTF8(strings[8]);
       Autres1 := strings[9];
       Autres2 := strings[10];
       Autres3 := strings[11];
       Autres4 := strings[12];
     
       write(fichier, Personne);
       end;
      System.Close(fichier);
    end;
    Qu'en pensez-vous ? J'ai essayé de sauvegarder en modifiant sans effet.
    Cordialement.

  6. #26
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par mm_71 Voir le message
    Bon... Le temps que j'aille prendre un café et beanzmaster a donné la réponse. Seule différence, chardet m'a donné Windows-1254 et pas 1252 ?
    Bonsoir c'est possible que ce soit 1254 je suis partie du principe Delphi 3 --> Windows et 1252 est le code page de Windows en générale de plus dans ce mode les caractères accentués sont souvent convertit en "?" lors d'un affichage en UTF-8

    C'était un grand café ! Dis-moi !

    Chardet ! ca à l'air sympa juste dommage que ce soit en Python et qu'il faut installer tout le tointoin pour le faire fonctionner sous Windows

    Bonne soirée
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  7. #27
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Cézarbi Voir le message
    Bonsoir,

    Je ne pensais pas revenir aussi vite.
    Après avoir ouvert ton exemple dans lequel toutes les lettres accentuées étaient bien là...
    J'ai sauvegardé, puis réouvert => Surprise ! Les lettres accentuées étaient remplacées par des "À@"...
    Bonsoir

    Comment as tu sauvegardé ? depuis le StringGrid.SaveToFile ou comme le code ta procedure "Enregister" que tu nous avait fourni ? Oups j'ai lu trop vite !

    Je mange et je je jette un oeil vite fait

    A toute
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  8. #28
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Re

    J'ai fini de manger et je viens de regarder. Tu n'as pas suivis mes recommandations avec le With...do ! attention

    Tiens voila l'exemple modifié, pour enregistrer tes données en UTF-8 correctement et les charger

    memorep2.zip

    Bonne soirée
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  9. #29
    Membre chevronné

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 035
    Points : 2 053
    Points
    2 053
    Par défaut
    C'était un grand café ! Dis-moi !
    Oui, mais faut le temps qu'il passe, en plus j'ai l'habitude de mettre en signets les messages ou je peux répondre et je fais tout en une fois sans regarder trop si il s'est passé quelque chose entre temps.
    Chardet ! ca à l'air sympa juste dommage que ce soit en Python et qu'il faut installer tout le tointoin pour le faire fonctionner sous Windows
    Sous linux c'est natif, il n'y a pas d'équivalent sous windows ? Et dans Lazarus il n'y a pas une fonction qui permet de faire ça ?
    J'ai sauvegardé, puis réouvert => Surprise ! Les lettres accentuées étaient remplacées par des "À@"
    Es-tu certain que ton système est bien en UTF-8 et pas en ISO-quelque chose ?

  10. #30
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Points : 28
    Points
    28
    Par défaut
    Oups !

    Je me disais bien que de recharger avec le même code n'était pas correct. Mais pris par le temps
    et la nécessité de faire autre chose...

    En ce qui concerne les boucles, et with ... do je vais faire attention...

    Pour la sauvegarde du fichier,
    La formulation : Identite := StringGrid1.Cells[0,Ligne];
    a l'air plus explicite que : Identite := strings[0];
    Mais je ne comprends pas pourquoi.

    Cordialement.

  11. #31
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par mm_71 Voir le message

    Sous linux c'est natif, il n'y a pas d'équivalent sous windows ? Et dans Lazarus il n'y a pas une fonction qui permet de faire ça ?
    Il doit sûrement y avoir un truc dans le genre sous Windows mais je n'en connais pas. Pour Lazarus j'ai une fonction dans le genre que j'ai tirée de je ne sais plus où. Mais elle n'est pas aussi avancée que Chardet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    Function TBZStringList.CheckDataIsText(Const aBuf: Pointer): Boolean;
    Var
      Buf: String;
      i, Len: Integer;
      NewLine: Boolean;
      p: PChar;
      ZeroAllowed: Boolean;
     
    Begin
      //ShowMessage('Verification DataIsText');
      Result := False;
     
      Len := 1024;
      SetLength(Buf, Len + 1);
      Len := SizeOf(aBuf);
     
      If Len > 0 Then
      Begin
        Buf[Len + 1] := #0;
     
        p := PChar(aBuf);
        ZeroAllowed := False;
        If (p[0] = #$EF) And (p[1] = #$BB) And (p[2] = #$BF) Then
        Begin
          //ShowMessage('UTF-8 BOM (Byte Order Mark)');
          Inc(p, 3);
        End
        Else If (p[0] = #$FF) And (p[1] = #$FE) Then
        Begin
          //ShowMessage('ucs-2le BOM FF FE');
          Inc(p, 2);
          ZeroAllowed := True;
        End
        Else If (p[0] = #$FE) And (p[1] = #$FF) Then
        Begin
          //ShowMessage('ucs-2be BOM FE FF');
          Inc(p, 2);
          ZeroAllowed := True;
        End
        Else
        Begin
          ZeroAllowed := True;
          //ShowMessage('Ansi String');
        End;
     
        NewLine := False;
        i := 0;
        While (i < len) Do
        Begin
          Case p^ Of
            #0:
              If p - PChar(Buf) >= Len Then
                break
              Else If Not ZeroAllowed Then
              Begin
                Raise Exception.Create('Erreur DataIsText ZeroAllowed');
                exit;
              End;
            // #12: form feed
            // #26: end of file
            #1..#7, #11, #14..#25, #27..#31:
            Begin
              Raise Exception.Create('Erreur DataIsText Invalide CHAR : ' + IntToStr(Ord(p^)) + ' pos : ' + IntToStr(i));
              exit;
            End;
            #10, #13: NewLine := True;
          End;
          Inc(p);
          Inc(i);
        End;
        If NewLine Or (Len < 1024) Then
          Result := True
        Else
          Raise Exception.Create('Erreur DataIsText Longueur invalide');
      End;
    End;
    Vu que Chardet est en Python, faire une conversion en Pascal ne devrait pas être trop compliqué à mon avis.
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  12. #32
    Membre chevronné

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 035
    Points : 2 053
    Points
    2 053
    Par défaut
    Pour Lazarus j'ai une fonction dans le genre que j'ai tiré de je ne sais plus ou. Mais elle n'ai pas aussi avancé que Chardet
    Il faudrait trouver la liste de tous les BOM's possibles mais là où il y-a un os c'est que si je regarde mes fichiers texte en UTF-8 ils n'ont pas de BOM ou ghex les zappe ?
    Pour ceux qui se demandent ce qu'est un BOM: il y a au début du fichier texte un BOM (byte order mark) de 2 ou 3 octets.

  13. #33
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par mm_71 Voir le message
    Il faudrait trouver la liste de tous les BOM's possibles mais là où il y-a un os c'est que si je regarde mes fichiers texte en UTF-8 ils n'ont pas de BOM ou ghex les zappe ?
    Pour ceux qui se demandent ce qu'est un BOM: il y a au début du fichier texte un BOM (byte order mark) de 2 ou 3 octets.
    Pour les BOM il n'y a pas 36000 possibilités. Je viens de regarder vite fait le code de chardet, ce n'est pas trop compliqué mis à part que c'est très éclaté.
    Sinon je viens de me souvenir d'un truc que j'avais vu sur le wiki et que j'ai retrouvé (http://wiki.lazarus.freepascal.org/UTF8_Tools). Cette bibliothèque peut-être utile pour la manipulation de caractères ANSI, UTF-8, 16, 32 avec et sans BOM en little et big endian.
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  14. #34
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Cézarbi Voir le message
    Oups !

    Je me disais bien que de recharger avec le même code n'était pas correct. Mais pris par le temps et la nécessité de faire autre chose...

    En ce qui concerne les boucles, et with ... do je vais faire attention...

    Pour la sauvegarde du fichier,
    La formulation : Identite := StringGrid1.Cells[0,Ligne];
    a l'air plus explicite que : Identite := strings[0];
    Mais je ne comprends pas pourquoi.

    Cordialement.
    En principe la formulation n'est pas en cause, c'est surtout le With..do la cause, mais je vérifierais.

    Par exemple dans ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With StringGrid1.Row[i], Personne do
    begin
      identite := Strings[0]
    Ce n'est pas correct, car la première entité est le stringgrid et non personne. Normalement tu devrais faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Personne, StringGrid1.Row[i] do
    begin
      Identite := Strings[0]
    Mais comme je te l'ai dit cette notation avec le with..do est à proscrire, elle peut induire en erreur, et induire le compilateur en l'erreur. Mieux vaut être plus explicite, c'est plus sûr.


    Sinon avec le StringGrid sous Lazarus arf, il faut souvent ruser comparé à Delphi. Mieux vaut rester le plus basique possible.

    Bonne fin de soirée et n'hésite pas si tu as d'autres soucis.
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  15. #35
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 717
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 717
    Points : 15 094
    Points
    15 094
    Par défaut
    Citation Envoyé par mm_71 Voir le message
    là où il y a un os c'est que si je regarde mes fichiers texte en UTF-8 ils n'ont pas de BOM ou ghex les zappe ?
    Non, ghex ne zappe rien du tout (et puis quoi encore ? Si les afficheurs hexa décident de ce genre de choses, ça va être le monde à l'envers).

    Cool, geany a une option "Ecrire le BOM Unicode" dans son menu "Document", et selon que c'est coché ou pas, ça donne ça :

    Nom : bom-nobom_ghex.png
Affichages : 162
Taille : 20,0 Ko

    Et ouvrir ces deux fichiers avec leafpad affiche la même chose : blah
    mais "clic droit / propriétés" montre bien que l'un pèse 5 octets (b 1 l 2 a 3 h 4 <ENTREE> 5) quand l'autre monte à 8.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  16. #36
    Membre chevronné

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 035
    Points : 2 053
    Points
    2 053
    Par défaut
    Non, ghex ne zappe rien du tout (et puis quoi encore ? Si les afficheurs hexa décident de ce genre de choses, ça va être le monde à l'envers).
    J'ai fouillé un peu plus et j'ai vu que les systèmes Unix/Linux n'écrivaient jamais le BOM dans les fichiers texte.

  17. #37
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 717
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 717
    Points : 15 094
    Points
    15 094
    Par défaut
    Citation Envoyé par mm_71 Voir le message
    J'ai fouillé un peu plus et j'ai vu que les systèmes Unix/Linux n'écrivaient jamais le BOM dans les fichiers texte.
    ???????????????????????

    Et c'est quoi, alors, les 3 octets EF BB BF de ma copie d'écran ?
    Il m'a suffi de le demander gentiment à geany et hop !
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  18. #38
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 419
    Points : 1 096
    Points
    1 096
    Par défaut
    Bonjour,

    Citation Envoyé par Jipété Voir le message
    ???????????????????????

    Et c'est quoi, alors, les 3 octets EF BB BF de ma copie d'écran ?
    Il m'a suffi de le demander gentiment à geany et hop !
    UTF8 a été créé pour pouvoir traiter des fichiers en ASCII pur (caractères de 0 à 127) sans les transcoder donc sans BOM (parce que sinon ce n'est pas de l'ASCII)

    Cependant on peut y en placer un celui ci est la traduction en UTF8 des BOMs utilisés en UTF16 ce qui permet de traduire directement de UTF16 en UTF8 mais de mon point de vue celui ci n'est pas vraiment utile car il n'y a pas de notion de BOM (Byte order mark) ce qui n'empêche pas la plupart des traitements de texte de pouvoir les y ajouter si besoin

    Cordialement

  19. #39
    Membre chevronné

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 035
    Points : 2 053
    Points
    2 053
    Par défaut
    Et c'est quoi, alors, les 3 octets EF BB BF de ma copie d'écran ?
    Il m'a suffi de le demander gentiment à geany et hop !
    Oui, parce-que tu l'as demandé mais par défaut c'est toujours sans. Si il s'agit de savoir si un fichier est bien en UTF-8 dans un programme de détection de l'encodage tu ne peux donc pas t'en remettre au BOM.
    Il faudra faire la recherche sur les caractères spéciaux ( Les accentués 2 octets dont le premier est C3, les apostrophes et autre 3 octets dont le premier et E0 etc. )

  20. #40
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 068
    Points : 15 441
    Points
    15 441
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par BeanzMaster Voir le message
    Chardet ! ca à l'air sympa juste dommage que ce soit en Python et qu'il faut installer tout le tointoin pour le faire fonctionner sous Windows
    Sinon il y a Charset Detector.

    J'avais proposé il y a quelque temps un projet utilisant cette bibliothèque.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. problème d'encodage de caractères spéciaux
    Par anti-conformiste dans le forum Langage
    Réponses: 3
    Dernier message: 14/12/2006, 09h42
  2. [mssql8sp3] problème d'encodage de caractères
    Par arnolem dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 24/10/2006, 17h31
  3. Réponses: 3
    Dernier message: 24/10/2006, 11h05
  4. Problème d'encodage de caractères
    Par Felmorian dans le forum ASP
    Réponses: 1
    Dernier message: 04/07/2006, 17h36

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