En conclusion : trouve-toi donc un éditeur UTF-8 qui sauve les pages
sans ces $#%¬ de saloperies de BOM qui foutent la merde alors que ça
ne sert strictement à *rien* en UTF-8 !
En conclusion : trouve-toi donc un éditeur UTF-8 qui sauve les pages
sans ces $#%¬ de saloperies de BOM qui foutent la merde alors que ça
ne sert strictement à *rien* en UTF-8 !
En conclusion : trouve-toi donc un éditeur UTF-8 qui sauve les pages
sans ces $#%¬ de saloperies de BOM qui foutent la merde alors que ça
ne sert strictement à *rien* en UTF-8 !
En conclusion : trouve-toi donc un éditeur UTF-8 qui sauve les pages
sans ces $#%¬ de saloperies de BOM qui foutent la merde alors que ça
ne sert strictement à *rien* en UTF-8 !
Oh olivier, te voilà bien aigri :D
Le BOM en UTF-8 peut servir à quelque chose : permettre de déterminer
facilement que l'on a à faire à un codage d'Unicode de manière quasi
certaine !
Dans un contexte Web, c'est par contre en effet, on peut le
dire, inutile, et source de nombreux bugs ! (j'ai en mémoire des crash
retentissants de PHP avec des fichiers sources en UTF-16 BOM, mais
c'était il y a quelques années...)
En conclusion : trouve-toi donc un éditeur UTF-8 qui sauve les pages
sans ces $#%¬ de saloperies de BOM qui foutent la merde alors que ça
ne sert strictement à *rien* en UTF-8 !
Oh olivier, te voilà bien aigri :D
Le BOM en UTF-8 peut servir à quelque chose : permettre de déterminer
facilement que l'on a à faire à un codage d'Unicode de manière quasi
certaine !
Dans un contexte Web, c'est par contre en effet, on peut le
dire, inutile, et source de nombreux bugs ! (j'ai en mémoire des crash
retentissants de PHP avec des fichiers sources en UTF-16 BOM, mais
c'était il y a quelques années...)
En conclusion : trouve-toi donc un éditeur UTF-8 qui sauve les pages
sans ces $#%¬ de saloperies de BOM qui foutent la merde alors que ça
ne sert strictement à *rien* en UTF-8 !
Oh olivier, te voilà bien aigri :D
Le BOM en UTF-8 peut servir à quelque chose : permettre de déterminer
facilement que l'on a à faire à un codage d'Unicode de manière quasi
certaine !
Dans un contexte Web, c'est par contre en effet, on peut le
dire, inutile, et source de nombreux bugs ! (j'ai en mémoire des crash
retentissants de PHP avec des fichiers sources en UTF-16 BOM, mais
c'était il y a quelques années...)
Merci de ne pas prendre prétexte de problèmes avec UTF-16 pour justifier
un usage dans UTF-8. Le BOM *est* utile dans UTF-16, il ne l'est *pas*
dans UTF-8.
Merci de ne pas prendre prétexte de problèmes avec UTF-16 pour justifier
un usage dans UTF-8. Le BOM *est* utile dans UTF-16, il ne l'est *pas*
dans UTF-8.
Merci de ne pas prendre prétexte de problèmes avec UTF-16 pour justifier
un usage dans UTF-8. Le BOM *est* utile dans UTF-16, il ne l'est *pas*
dans UTF-8.
Le BOM en UTF-8 peut servir à quelque chose : permettre de déterminer
facilement que l'on a à faire à un codage d'Unicode de manière quasi
certaine !
C'est bien ce que je dis, ça ne sert à rien. Parce que le simple fait
pour un texte d'être décodable en UTF-8 prouve déjà de manière quasi
certaine que c'est effectivement de l'UTF-8 !
Dans un contexte Web, c'est par contre en effet, on peut le
dire, inutile, et source de nombreux bugs ! (j'ai en mémoire des crash
retentissants de PHP avec des fichiers sources en UTF-16 BOM, mais
c'était il y a quelques années...)
Merci de ne pas prendre prétexte de problèmes avec UTF-16 pour justifier
un usage dans UTF-8. Le BOM *est* utile dans UTF-16, il ne l'est *pas*
dans UTF-8.
Le BOM en UTF-8 peut servir à quelque chose : permettre de déterminer
facilement que l'on a à faire à un codage d'Unicode de manière quasi
certaine !
C'est bien ce que je dis, ça ne sert à rien. Parce que le simple fait
pour un texte d'être décodable en UTF-8 prouve déjà de manière quasi
certaine que c'est effectivement de l'UTF-8 !
Dans un contexte Web, c'est par contre en effet, on peut le
dire, inutile, et source de nombreux bugs ! (j'ai en mémoire des crash
retentissants de PHP avec des fichiers sources en UTF-16 BOM, mais
c'était il y a quelques années...)
Merci de ne pas prendre prétexte de problèmes avec UTF-16 pour justifier
un usage dans UTF-8. Le BOM *est* utile dans UTF-16, il ne l'est *pas*
dans UTF-8.
Le BOM en UTF-8 peut servir à quelque chose : permettre de déterminer
facilement que l'on a à faire à un codage d'Unicode de manière quasi
certaine !
C'est bien ce que je dis, ça ne sert à rien. Parce que le simple fait
pour un texte d'être décodable en UTF-8 prouve déjà de manière quasi
certaine que c'est effectivement de l'UTF-8 !
Dans un contexte Web, c'est par contre en effet, on peut le
dire, inutile, et source de nombreux bugs ! (j'ai en mémoire des crash
retentissants de PHP avec des fichiers sources en UTF-16 BOM, mais
c'était il y a quelques années...)
Merci de ne pas prendre prétexte de problèmes avec UTF-16 pour justifier
un usage dans UTF-8. Le BOM *est* utile dans UTF-16, il ne l'est *pas*
dans UTF-8.
Le BOM en UTF-8 peut servir à quelque chose
Le BOM en UTF-8 peut servir à quelque chose
Le BOM en UTF-8 peut servir à quelque chose
C'est bien ce que je dis, ça ne sert à rien. Parce que le simple fait
pour un texte d'être décodable en UTF-8 prouve déjà de manière quasi
certaine que c'est effectivement de l'UTF-8 !
Dans le cadre du Web, non. Et même dans la plupart des cas, en fait.
Mais si on souhaite faire un détection vraiment simple, simplement lire
l'existence d'un bom simplifie grandement la vie !
C'est tout ce que je
voulais dire, et c'était plutôt une réponse en forme de clin d'oeil,
mais il me semble que tu es de mauvaise humeur aujourd'hui ;)
[...]
Donc : le BOM sur UTF-8 ne sert à rien dans le contexte évoqué par le
posteur initial.
L'utilité première du BOM est sur UTF-16. Mais en parlant de UTF-16,
attention car il y a encore de bien trop nombreux prb avec des outils
pourtant récents et régulièrement mis à jour.
C'est bien ce que je dis, ça ne sert à rien. Parce que le simple fait
pour un texte d'être décodable en UTF-8 prouve déjà de manière quasi
certaine que c'est effectivement de l'UTF-8 !
Dans le cadre du Web, non. Et même dans la plupart des cas, en fait.
Mais si on souhaite faire un détection vraiment simple, simplement lire
l'existence d'un bom simplifie grandement la vie !
C'est tout ce que je
voulais dire, et c'était plutôt une réponse en forme de clin d'oeil,
mais il me semble que tu es de mauvaise humeur aujourd'hui ;)
[...]
Donc : le BOM sur UTF-8 ne sert à rien dans le contexte évoqué par le
posteur initial.
L'utilité première du BOM est sur UTF-16. Mais en parlant de UTF-16,
attention car il y a encore de bien trop nombreux prb avec des outils
pourtant récents et régulièrement mis à jour.
C'est bien ce que je dis, ça ne sert à rien. Parce que le simple fait
pour un texte d'être décodable en UTF-8 prouve déjà de manière quasi
certaine que c'est effectivement de l'UTF-8 !
Dans le cadre du Web, non. Et même dans la plupart des cas, en fait.
Mais si on souhaite faire un détection vraiment simple, simplement lire
l'existence d'un bom simplifie grandement la vie !
C'est tout ce que je
voulais dire, et c'était plutôt une réponse en forme de clin d'oeil,
mais il me semble que tu es de mauvaise humeur aujourd'hui ;)
[...]
Donc : le BOM sur UTF-8 ne sert à rien dans le contexte évoqué par le
posteur initial.
L'utilité première du BOM est sur UTF-16. Mais en parlant de UTF-16,
attention car il y a encore de bien trop nombreux prb avec des outils
pourtant récents et régulièrement mis à jour.
Je réagis juste face à
une affirmation fausse, de la même façon que tu réagirais si quelqu'un
prétendait que du XHTML 1.0 transitional permet d'écrire du code plus
propre que le HTML 4.01 Strict.
Je réagis juste face à
une affirmation fausse, de la même façon que tu réagirais si quelqu'un
prétendait que du XHTML 1.0 transitional permet d'écrire du code plus
propre que le HTML 4.01 Strict.
Je réagis juste face à
une affirmation fausse, de la même façon que tu réagirais si quelqu'un
prétendait que du XHTML 1.0 transitional permet d'écrire du code plus
propre que le HTML 4.01 Strict.
il n'existe pas de domaine où la lecture
d'un BOM soit plus fiable que la lecture du contenu pour déterminer si
oui ou non on a de l'UTF-8. De deux choses l'une : soit tu peux obtenir
le charset par une information extérieure de type Content-Type et tu
n'as pas besoin de BOM ; soit tu ne peux te baser que sur le contenu
pour choisir entre les centaines d'encodages connus et autant le faire
complètement.Mais si on souhaite faire un détection vraiment simple, simplement lire
l'existence d'un bom simplifie grandement la vie !
Je ne peux pas être d'accord. Les microsecondes gagnées pour reconnaître
l'encodage dans le cas où un BOM existe sont très loin de compenser les
inconvénients -- sans compter que tu ne peux pas te fier au seul BOM
puisque la plupart du temps il ne sera pas là.
L'utilité première du BOM est sur UTF-16. Mais en parlant de UTF-16,
attention car il y a encore de bien trop nombreux prb avec des outils
pourtant récents et régulièrement mis à jour.
L'utilité unique du BOM est sur UTF-16 *et sur UTF-32*.
il n'existe pas de domaine où la lecture
d'un BOM soit plus fiable que la lecture du contenu pour déterminer si
oui ou non on a de l'UTF-8. De deux choses l'une : soit tu peux obtenir
le charset par une information extérieure de type Content-Type et tu
n'as pas besoin de BOM ; soit tu ne peux te baser que sur le contenu
pour choisir entre les centaines d'encodages connus et autant le faire
complètement.
Mais si on souhaite faire un détection vraiment simple, simplement lire
l'existence d'un bom simplifie grandement la vie !
Je ne peux pas être d'accord. Les microsecondes gagnées pour reconnaître
l'encodage dans le cas où un BOM existe sont très loin de compenser les
inconvénients -- sans compter que tu ne peux pas te fier au seul BOM
puisque la plupart du temps il ne sera pas là.
L'utilité première du BOM est sur UTF-16. Mais en parlant de UTF-16,
attention car il y a encore de bien trop nombreux prb avec des outils
pourtant récents et régulièrement mis à jour.
L'utilité unique du BOM est sur UTF-16 *et sur UTF-32*.
il n'existe pas de domaine où la lecture
d'un BOM soit plus fiable que la lecture du contenu pour déterminer si
oui ou non on a de l'UTF-8. De deux choses l'une : soit tu peux obtenir
le charset par une information extérieure de type Content-Type et tu
n'as pas besoin de BOM ; soit tu ne peux te baser que sur le contenu
pour choisir entre les centaines d'encodages connus et autant le faire
complètement.Mais si on souhaite faire un détection vraiment simple, simplement lire
l'existence d'un bom simplifie grandement la vie !
Je ne peux pas être d'accord. Les microsecondes gagnées pour reconnaître
l'encodage dans le cas où un BOM existe sont très loin de compenser les
inconvénients -- sans compter que tu ne peux pas te fier au seul BOM
puisque la plupart du temps il ne sera pas là.
L'utilité première du BOM est sur UTF-16. Mais en parlant de UTF-16,
attention car il y a encore de bien trop nombreux prb avec des outils
pourtant récents et régulièrement mis à jour.
L'utilité unique du BOM est sur UTF-16 *et sur UTF-32*.
Je me souvenais avoir entendu parler de cet usage en discutant avec un
partenaire. Le BOM, m'avait-il dit, ne correspondait à aucun caractère
dans aucun charset ISO 8 bits dérivé de us-ascii.
[...]
L'analyse précise du contenu du fichier me parait extrêmement complexe,
et je ne connais pas de librairie libre (pas forcément gratuite) qui
proposent ce service intégrable dans une application. je crois me
rappeler que Mozilla avait commencé à rendre disponible l'api de
détection utilisée dans le browser ? En fait je n'ai pas eu trop à me
pencher sur le sujet...
Il est de toute façon préférable de bien stocker le charset à côté des
données, tout comme on n'imaginerai pas enregistrer un flux de données
binaire sans spécifier de quel format il s'agit !
Je me souvenais avoir entendu parler de cet usage en discutant avec un
partenaire. Le BOM, m'avait-il dit, ne correspondait à aucun caractère
dans aucun charset ISO 8 bits dérivé de us-ascii.
[...]
L'analyse précise du contenu du fichier me parait extrêmement complexe,
et je ne connais pas de librairie libre (pas forcément gratuite) qui
proposent ce service intégrable dans une application. je crois me
rappeler que Mozilla avait commencé à rendre disponible l'api de
détection utilisée dans le browser ? En fait je n'ai pas eu trop à me
pencher sur le sujet...
Il est de toute façon préférable de bien stocker le charset à côté des
données, tout comme on n'imaginerai pas enregistrer un flux de données
binaire sans spécifier de quel format il s'agit !
Je me souvenais avoir entendu parler de cet usage en discutant avec un
partenaire. Le BOM, m'avait-il dit, ne correspondait à aucun caractère
dans aucun charset ISO 8 bits dérivé de us-ascii.
[...]
L'analyse précise du contenu du fichier me parait extrêmement complexe,
et je ne connais pas de librairie libre (pas forcément gratuite) qui
proposent ce service intégrable dans une application. je crois me
rappeler que Mozilla avait commencé à rendre disponible l'api de
détection utilisée dans le browser ? En fait je n'ai pas eu trop à me
pencher sur le sujet...
Il est de toute façon préférable de bien stocker le charset à côté des
données, tout comme on n'imaginerai pas enregistrer un flux de données
binaire sans spécifier de quel format il s'agit !
Mais l'analyse d'un fichier dans un charset quelconque, simplement pour
en déduire si oui ou non c'est de l'UTF-8 (et ce, quelle que soit la
langue utilisée) est une question *triviale*. Un simple iconv de UTF-8
vers UTF-16, par exemple, te donne immédiatement la réponse. Si c'est
encore trop long pour toi, tu peux te contenter du test suivant :
index = 0
tant que index < longueur de la chaîne
{
si caractère(index) dans [0..x7f]
// ok
sinon, si caractère(index) dans [xc0..xdf]
index = index+1
si caractère(index) pas dans [x80..xbf] ERREUR
sinon, si caractère(index) dans [xe0..xef]
index = index+1
si caractère(index) pas dans [x80..xbf] ERREUR
index = index+1
si caractère(index) pas dans [x80..xbf] ERREUR
sinon, si caractère(index) dans [xf0..xf7]
index = index+1
si caractère(index) pas dans [x80..xbf] ERREUR
index = index+1
si caractère(index) pas dans [x80..xbf] ERREUR
index = index+1
si caractère(index) pas dans [x80..xbf] ERREUR
sinon
ERREUR
index = index + 1
si index > longueur de la chaine
ERREUR
}
Attention, je viens d'écrire ce test en lisant la doc, je ne garantis
pas sa validité absolue, et en outre il ne vérifie pas les séquences
invalides car trop longues. Malgré tout, un code de ce genre suffit pour
distinguer UTF-8 de tout le reste.
Mais l'analyse d'un fichier dans un charset quelconque, simplement pour
en déduire si oui ou non c'est de l'UTF-8 (et ce, quelle que soit la
langue utilisée) est une question *triviale*. Un simple iconv de UTF-8
vers UTF-16, par exemple, te donne immédiatement la réponse. Si c'est
encore trop long pour toi, tu peux te contenter du test suivant :
index = 0
tant que index < longueur de la chaîne
{
si caractère(index) dans [0..x7f]
// ok
sinon, si caractère(index) dans [xc0..xdf]
index = index+1
si caractère(index) pas dans [x80..xbf] ERREUR
sinon, si caractère(index) dans [xe0..xef]
index = index+1
si caractère(index) pas dans [x80..xbf] ERREUR
index = index+1
si caractère(index) pas dans [x80..xbf] ERREUR
sinon, si caractère(index) dans [xf0..xf7]
index = index+1
si caractère(index) pas dans [x80..xbf] ERREUR
index = index+1
si caractère(index) pas dans [x80..xbf] ERREUR
index = index+1
si caractère(index) pas dans [x80..xbf] ERREUR
sinon
ERREUR
index = index + 1
si index > longueur de la chaine
ERREUR
}
Attention, je viens d'écrire ce test en lisant la doc, je ne garantis
pas sa validité absolue, et en outre il ne vérifie pas les séquences
invalides car trop longues. Malgré tout, un code de ce genre suffit pour
distinguer UTF-8 de tout le reste.
Mais l'analyse d'un fichier dans un charset quelconque, simplement pour
en déduire si oui ou non c'est de l'UTF-8 (et ce, quelle que soit la
langue utilisée) est une question *triviale*. Un simple iconv de UTF-8
vers UTF-16, par exemple, te donne immédiatement la réponse. Si c'est
encore trop long pour toi, tu peux te contenter du test suivant :
index = 0
tant que index < longueur de la chaîne
{
si caractère(index) dans [0..x7f]
// ok
sinon, si caractère(index) dans [xc0..xdf]
index = index+1
si caractère(index) pas dans [x80..xbf] ERREUR
sinon, si caractère(index) dans [xe0..xef]
index = index+1
si caractère(index) pas dans [x80..xbf] ERREUR
index = index+1
si caractère(index) pas dans [x80..xbf] ERREUR
sinon, si caractère(index) dans [xf0..xf7]
index = index+1
si caractère(index) pas dans [x80..xbf] ERREUR
index = index+1
si caractère(index) pas dans [x80..xbf] ERREUR
index = index+1
si caractère(index) pas dans [x80..xbf] ERREUR
sinon
ERREUR
index = index + 1
si index > longueur de la chaine
ERREUR
}
Attention, je viens d'écrire ce test en lisant la doc, je ne garantis
pas sa validité absolue, et en outre il ne vérifie pas les séquences
invalides car trop longues. Malgré tout, un code de ce genre suffit pour
distinguer UTF-8 de tout le reste.