Super, merci pour cette dépêche et ce travail remarquable. Tu multiplies les contributions utiles décidément.
J'ai longtemps eu du mal à ne pas avoir l'impression que "chardet" est une erreur de frappe sur "charset", avec le S qui est juste à côté du D en qwerty / azerty. Bref.
Et c’est ainsi que Mozilla a décidé de ré-écrire un nouveau projet en Rust. Dans leur article, ils citent uchardet (sans le nommer autrement qu’un « fork non-Mozilla » avec un lien vers la page d’uchardet)
Ça vaut peut-être le coup de leur signaler. C'est une formulation maladroite et malheureuse, et je ne pense pas que ça soit malicieux.
et le fait qu’il est bien plus complet maintenant qu’il ne l’était à l’époque, mais qu’il manque encore des fonctionnalités. Ils ont donc préféré ré-implémenter du début (une logique qui m’interpelle)
En tout cas je vois un intérêt de travailler en Rust. S'il y a bien une brique logicielle qu'il est intéressant d'avoir en Rust dans un navigateur web, c'est une détection de caractère, avec probablement plein de fichiers d'entrée tout pétés avec des failles de sécurités plus facilement évitables dans ce langage.
Notons qu’idéalement, vous devriez même retirer tout texte structurel qui pourrait interférer avec la détection (j’en reparlerai dans la section sur les principes de détection. Par exemple pour retirer les tags HTML sur une seule ligne:
$ curl https://www-archive.mozilla.org/projects/intl/universalcharsetdetection | sed 's/<[^>]*>//g' | uchardet
(il manque une parenthèse fermante dans le texte)
Ça nécessite que sed lui-même se débrouille suffisamment bien pour détecter le charset xD. Heureusement, en général, les caractères spéciaux XML (< et >) sont toujours codés de la même manière, compatible avec l'UTF-8 que sed attend probablement. Sauf en UTF-16, UTF-32, UCS-2 ou des trucs comme ça, auquel cas sed ne va juste rien transformer, et uchardet sera probablement capable de reconnaître le bon charset correctement. Donc si ça se trouve, ça fonctionne tout le temps, mais pour des raisons un peu plus intéressante que ce qu'on pourrait penser initialement.
Et du coup, la détection de langage dont tu parles, c'est des langages naturels comme le français, des langages informatiques comme l'HTML, ou les deux ?
# Belle dépêche
Posté par raphj (site web personnel) . En réponse à la dépêche Sortie de uchardet 0.0.8 pour la détection de codages de caractères. Évalué à 5.
Super, merci pour cette dépêche et ce travail remarquable. Tu multiplies les contributions utiles décidément.
J'ai longtemps eu du mal à ne pas avoir l'impression que "chardet" est une erreur de frappe sur "charset", avec le S qui est juste à côté du D en qwerty / azerty. Bref.
Ça vaut peut-être le coup de leur signaler. C'est une formulation maladroite et malheureuse, et je ne pense pas que ça soit malicieux.
En tout cas je vois un intérêt de travailler en Rust. S'il y a bien une brique logicielle qu'il est intéressant d'avoir en Rust dans un navigateur web, c'est une détection de caractère, avec probablement plein de fichiers d'entrée tout pétés avec des failles de sécurités plus facilement évitables dans ce langage.
(il manque une parenthèse fermante dans le texte)
Ça nécessite que sed lui-même se débrouille suffisamment bien pour détecter le charset xD. Heureusement, en général, les caractères spéciaux XML (
<et>) sont toujours codés de la même manière, compatible avec l'UTF-8 que sed attend probablement. Sauf en UTF-16, UTF-32, UCS-2 ou des trucs comme ça, auquel cas sed ne va juste rien transformer, etuchardetsera probablement capable de reconnaître le bon charset correctement. Donc si ça se trouve, ça fonctionne tout le temps, mais pour des raisons un peu plus intéressante que ce qu'on pourrait penser initialement.Et du coup, la détection de langage dont tu parles, c'est des langages naturels comme le français, des langages informatiques comme l'HTML, ou les deux ?