Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[HS] UTF-8 ou ISO-8859-15 ?

16 réponses
Avatar
David Soulayrol
Bonjour - et bonne année.

J'aimerai avoir votre avis sur les locales que vous utilisez. Y a-t-il un
avantage à utiliser UTF-8 à la place de Latin-1, ou le contraire...

Je me pose cette question depuis que j'ai découvert que GNOME est basé sur
UTF-8, et qu'il faut passer la macro G_BROKEN_FILENAME (mais je crois que le nom
a/va changé/er) à GTK pour qu'il gère correctement la locale Latin-1.

Merci,
David.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

6 réponses

1 2
Avatar
Vincent Lefevre
On 2005-01-07 19:04:24 +0100, Thomas Nemeth wrote:
Oui et non : comment sont gérées les chaines utf-8 lors de la
compilation ? (je suppose qu'il s'en fout comme de l'an 40 et
qu'il passe tous les octets de la chaine à la fonction de
traitement en wchar.



En C, les chaînes sont apparentées à des tableaux de char, où 1 char
correspond à 1 caractère. Donc UTF-8 n'est pas supporté à la base
autrement que comme une suite d'octets. Le type wchar_t peut servir
à représenter les caractères d'Unicode, mais à ce moment, il n'y a
plus de rapport avec UTF-8.

Maintenant suppose que tu es en phase de transition ISO->UTF. Tu
as des fichiers en latin0 et des fichiers en utf-8. Pour utiliser
l'utf-8 avec toutes tes applis tu as mis les locales
kivonbien®©(tm) ( si ma mémoire est bonne). Les applis
(genre vim) réussissent-elles à éditer/modifier correctement des
fichiers Latin0 ?



Latin0? Tu veux dire latin1 (iso-8859-1) ou latin9 (iso-8859-15)?
Ça dépend des applications.

Les transforment-elles en utf-8 à la sauvegarde ?



Idem. Emacs est capable d'avoir un encodage d'entrée (lecture fichier)
et un encodage de sortie (écriture fichier) différents, ainsi que pour
les entrées/sorties lorsqu'il est lancé dans un terminal texte.

Pour le XML, les parseurs connaissent en général tous ces encodages,
et c'est indépendant des locales. Idem en sortie d'un processeur XSLT
par exemple.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Thomas Nemeth
Le 09.01.05, Vincent Lefevre a tapoté :

| On 2005-01-07 19:04:24 +0100, Thomas Nemeth wrote:
| > Oui et non : comment sont gérées les chaines utf-8 lors de la
| > compilation ? (je suppose qu'il s'en fout comme de l'an 40 et
| > qu'il passe tous les octets de la chaine à la fonction de
| > traitement en wchar.
|
| En C, les chaînes sont apparentées à des tableaux de char, où 1 char
| correspond à 1 caractère. Donc UTF-8 n'est pas supporté à la base
| autrement que comme une suite d'octets. Le type wchar_t peut servir
| à représenter les caractères d'Unicode, mais à ce moment, il n'y a
| plus de rapport avec UTF-8.

Justement ! Ma question (pas assez claire) était : est-ce qu'en
utilisant les fonctions utilisant les wchar, le compilo
comprennait bien les caractères utf-8 comme étant composés de 2
caractères et si l'utilisation combinée putwchar() et d'une
police utf-8 ne posait /a priori/ pas de pb.

Je ne vois, par ailleurs, pas de printf avec un wchar dans
/usr/include/wchar.h...

Autre sujet d'inquiétude : si mon source C est en utf-8, le noyau
comprendra-t-il mes printk utilisant de l'utf-8 ou devrais-je me
passer d'accents pour mes modules noyaux ? (je la sens mal,
celle-là).


| > Maintenant suppose que tu es en phase de transition ISO->UTF. Tu
| > as des fichiers en latin0 et des fichiers en utf-8. Pour utiliser
| > l'utf-8 avec toutes tes applis tu as mis les locales
| > kivonbien®©(tm) ( si ma mémoire est bonne). Les applis
| > (genre vim) réussissent-elles à éditer/modifier correctement des
| > fichiers Latin0 ?
|
| Latin0? Tu veux dire latin1 (iso-8859-1) ou latin9 (iso-8859-15)?

Latin0 est un alias de latin9 depuis belle lurette.


| Ça dépend des applications.

Ça ne m'avance pas beaucoup :)


| > Les transforment-elles en utf-8 à la sauvegarde ?
|
| Idem. Emacs est capable d'avoir un encodage d'entrée (lecture fichier)
| et un encodage de sortie (écriture fichier) différents, ainsi que pour
| les entrées/sorties lorsqu'il est lancé dans un terminal texte.
|
| Pour le XML, les parseurs connaissent en général tous ces encodages,
| et c'est indépendant des locales. Idem en sortie d'un processeur XSLT
| par exemple.
|
|

Thomas
--
BOFH excuse #308:
CD-ROM server needs recalibration.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Thomas Nemeth
Le 09.01.05, Thomas Nemeth a tapoté :

| Je ne vois, par ailleurs, pas de printf avec un wchar dans
| /usr/include/wchar.h...

Laissez tomber : mauvais grep...


Thomas
--
BOFH excuse #317:
Internet exceeded Luser level, please wait until a
luser logs off before attempting to log back on.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Vincent Lefevre
On 2005-01-09 11:59:07 +0100, Thomas Nemeth wrote:
Justement ! Ma question (pas assez claire) était : est-ce qu'en
utilisant les fonctions utilisant les wchar, le compilo
comprennait bien les caractères utf-8 comme étant composés de 2
caractères et si l'utilisation combinée putwchar() et d'une
police utf-8 ne posait /a priori/ pas de pb.



Ça doit être quelque chose qui dépend de l'implémentation, donc RTFM,
qui dit notamment:

NOTES
The behaviour of putwchar depends on the LC_CTYPE category of the cur-
rent locale.

It is reasonable to expect that putwchar will actually write the multi-
byte sequence corresponding to the wide character wc.

Autre sujet d'inquiétude : si mon source C est en utf-8, le noyau
comprendra-t-il mes printk utilisant de l'utf-8 ou devrais-je me
passer d'accents pour mes modules noyaux ? (je la sens mal,
celle-là).



Si tu compiles ton programme dans un contexte utf-8, l'utf-8 disparaît
au moment de la compilation:

[norme C99]
1. Physical source file multibyte characters are mapped
to the source character set (introducing new-line
characters for end-of-line indicators) if necessary.

Mais si le printk (je ne connais pas...) encode bien les multibytes
en utf-8, ça doit être OK. Tu peux tester...

Latin0 est un alias de latin9 depuis belle lurette.



Pas un alias officiel. Wikipedia dit:

ISO 8859-15 (latin-9 ou parfois de façon impropre latin-0)

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Thomas Nemeth
Le 09.01.05, Vincent Lefevre a tapoté :

| On 2005-01-09 11:59:07 +0100, Thomas Nemeth wrote:
| > Justement ! Ma question (pas assez claire) était : est-ce qu'en
| > utilisant les fonctions utilisant les wchar, le compilo
| > comprennait bien les caractères utf-8 comme étant composés de 2
| > caractères et si l'utilisation combinée putwchar() et d'une
| > police utf-8 ne posait /a priori/ pas de pb.
|
| Ça doit être quelque chose qui dépend de l'implémentation, donc RTFM,
| qui dit notamment:
|
| NOTES
| The behaviour of putwchar depends on the LC_CTYPE category of the cur-
| rent locale.
|
| It is reasonable to expect that putwchar will actually write the multi-
| byte sequence corresponding to the wide character wc.

Erf. J'avais déjà lu. Mais comme je n'ai pas d'utf-8 pour le
moment afin de tester...


| > Autre sujet d'inquiétude : si mon source C est en utf-8, le noyau
| > comprendra-t-il mes printk utilisant de l'utf-8 ou devrais-je me
| > passer d'accents pour mes modules noyaux ? (je la sens mal,
| > celle-là).
|
| Si tu compiles ton programme dans un contexte utf-8, l'utf-8 disparaît
| au moment de la compilation:
|
[norme C99]
| Mais si le printk (je ne connais pas...) encode bien les multibytes
| en utf-8, ça doit être OK. Tu peux tester...

Mouais... Bon, pour l'instant, mes drivers et autres modules
seront encore codés en iso. On ne peut pas savoir pour les
drivers officiels étant donné que tout le mode y met de l'anglais
et donc pas d'accent.

Après lecture des sources, le noyau ne prend pas en compte les
wchar...


| > Latin0 est un alias de latin9 depuis belle lurette.
|
| Pas un alias officiel. Wikipedia dit:
|
| ISO 8859-15 (latin-9 ou parfois de façon impropre latin-0)

Ça fait suffisament de temps qu'il est utilisé à mes yeux (~97).


Thomas
--
Verglas en avril, tricosteril.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Alban Browaeys
> plus sérieusement : si les nom sont en iso-8859-15, tu vas te retrouver
avec des caractères bizarres dans le nom, mais ça n'empêche pas des les
utiliser, et il te faudra les renommer si tu veux retrouver tes accents,
si le nom est en utf-8 tout va bien.



Pour convertir les noms de fichiers , convmv est disponible sous debian.

Mode de test interactif:
convmv -i -f iso-8859-15 -t utf-8 --nfc -r répertoire_avec_les_fichiers/

non interactif, changement appliqués:
convmv --notest -f iso-8859-15 -t utf-8 --nfc -r répertoire_avec_les_fichiers/


Pour les contenus , il y a iconv (utilisé en libraririe par la plupart des
applis), ou recode (plus simple en ligne de commande).

ALban


--
Pensez
1 2