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

C Discussion :

BOM et unicode


Sujet :

C

  1. #21
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 439
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    En fait, plus j'y pense, plus je penche du côté de corrector pour ce point...
    A un moment, mon argument logique repose sur le fait que "la donnée D est au format F" permet d'interpréter D (d'écrire un programme qui décode D). A partir de là, on prouve la disjonction mentionnée ci-dessus, l'absence de BOM en UTF-8, le caractère non-optionnel du BOM dans tous les cas.

    Peut-être que tout le désaccord et les difficultés de communication viennent de là.

    (Je peux aussi justifier certaines choses sur la base de la norme, mais ça m'intéresse moins.)

  2. #22
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    Je suis d'accord sur le fait que quand on sait hors-bande qu'un texte est en UTF-8, il n'y a pas de BOM.
    Mais dans un texte dont on ignore le type, une "BOM UTF-8" peut signaler en-bande que la suite du texte est en UTF-8...

    Edit au sujet du message #23: En effet, ce message saisit parfaitement ma pensée.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #23
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 439
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Je suis d'accord sur le fait que quand on sait hors-bande qu'un texte est en UTF-8, il n'y a pas de BOM.
    Mais dans un texte dont on ignore le type, une "BOM UTF-8" peut signaler en-bande que la suite du texte est en UTF-8...
    Je résume (tu m'arrêtes si je comprends de travers ce que tu voulais dire) : tu as un fichier, c'est de l'UTF-8, ça peut être indiqué à des programmes "hors-bande", mais certains programmes ne savent pas que c'est de l'UTF-8 (ils n'ont pas de canal hors-bande adéquat), donc on met une BOM comme "magic-number" pour identifier le format ("en-bande").

    Donc ces derniers programmes voient une "BOM UTF-8", passent en mode UTF-8, et continuent à lire.

    Les autres, qui ont déjà l'information hors-bande, commencent à lire en UTF-8 depuis le début du fichier (puisque la BOM n'est pas obligatoire en UTF-8), décodent les séquences à commencer par celle qui code la BOM, qui est alors considérée comme de l'UTF-8, pas annonçant de l'UTF-8, donc il décode un ZWNBSP, puis le reste du fichier comme précédemment. Tandis que les autres programmes, qui ne savaient pas que c'était de l'UTF-8 n'ont décodé que le reste du fichier. Il y a un caractère (ou code-point) en trop.

    Mais ce n'est pas juste un artéfact comme les diacritiques combinant vs. les formes pré-combinées : on peut normaliser, qu'on passe en NFC, NFD, NFKC, NFKD, le ZWNBSP sera toujours là et heureusement parce qu'il a une sémantique, il ne fait pas juste de la figuration, ni du remplissage (sauf quand c'est une BOM, mais un ZWNBSP n'est jamais une BOM puisque l'un est un code-point, l'autre n'est... rien du tout, c'est comme les torchons et les serviettes, faut pas mélanger).

  4. #24
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 439
    Par défaut Le point de vue d'Unicode sur Unicode (ça balance)
    Citation Envoyé par Unicode 5.0
    If U+FEFF had only the semantics of a signature code point,
    On sent une note de regret...
    Citation Envoyé par Unicode 5.0
    it could be freely deleted from text without affecting the interpretation of the rest of the text. Carelessly appending files together, for example, can result in a signature code point in the middle of text.
    En bref, ça risque d'être le bordel.
    Citation Envoyé par Unicode 5.0
    Unfortunately, U+FEFF also has significance as a character. As a zero width no-break space, it indicates that line breaks are not allowed between the adjoining characters. Thus U+FEFF affects the interpretation of text and cannot be freely deleted. The overloading of semantics for this code point has caused problems for programs and protocols.
    Ils sont honnêtes au moins.
    Citation Envoyé par Unicode 5.0
    The new character U+2060 word joiner has the same semantics in all cases as U+FEFF, except that it cannot be used as a signature.
    Maintenant, ils essaient de réparer leur erreur.
    Citation Envoyé par Unicode 5.0
    Implementers are strongly encouraged to use word joiner in those circumstances whenever word joining semantics are intended.
    Ben oui, mais on ne peut pas remonter le temps.

    En fait, je suis d'accord sur le fond avec eux.

Discussions similaires

  1. [2K5] BULK INSERT / BCP / Unicode / BOM / UTF-16
    Par mioux dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 20/11/2009, 15h11
  2. [XHTML] Problème de Unicode Byte-Order Mark (BOM) in UTF-8 (?)
    Par gb-ch dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 13/02/2007, 02h01
  3. [Unicode] Internationalisation d'une application
    Par Thierry Laborde dans le forum Langage
    Réponses: 4
    Dernier message: 21/10/2003, 20h15
  4. conversion Unicode -> ASCII
    Par juzam dans le forum C
    Réponses: 8
    Dernier message: 24/07/2003, 10h07
  5. [debutant] unicode
    Par dadou91 dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 23/05/2003, 10h12

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