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

codage des caractères

21 réponses
Avatar
Archidemon
L'apparition d'un fichier dont le nom contient un e accent aigu me
cause des embarras. Lorsque je cr=E9e un fichier de v=E9rification avec:

find . -name '*' -exec cksum =A0> list '{}' ';'

le fichier "list" ne contient pas le e accent aigu dont j'ai besoin
pour comparer avec une liste ma=EEtresse.

Y a -t-il un moyen de faire en sorte que le fichier r=E9sultant ai un
codage compatible ou encore que je puisse d=E9terminer le codage?

mes r=E9glages sont:
$ locale
LANG=3D"fr_CA.UTF-8"
LC_COLLATE=3D"C"
LC_CTYPE=3D"C"
LC_MESSAGES=3D"C"
LC_MONETARY=3D"C"
LC_NUMERIC=3D"C"
LC_TIME=3D"C"
LC_ALL=3D"C"

.bash_profile
LC_ALL=3DC
export LC_ALL

R=E9glages de terminal: (tels que par d=E9faut)
Codage des caract=E8res: Unicode (UTF-8)
"D=E9finir la variable d'environnement LANG au d=E9marrage " est coch=E9

Encodages du Terminal: (tels que par d=E9faut)
Unicode (UTF-8)
Western (Mac OS Roman)
Western (ISO Latin 1)
Western (ISO Latin 9)
Western (Windows Latin 1)
Western (ASCII)
Western (NextStep)
Japanese (Mac OS)
Japanese (ISO 2022-JP)
Japanese (EUC)
Japanese (Shift JIS)
Corean (EUC)
Cyrillic (ISO 8859-5)
Russian (DOS)
Cyrillic (Windows)
Cyrillic (KOI8-R)
Chinese simplified (EUC)
Central European (ISO Latin 2)
Chinese traditional (Big 5-E)

10 réponses

1 2 3
Avatar
Vincent Lefevre
Dans l'article ,
Archidemon écrit:

mes réglages sont:
$ locale
LANG="fr_CA.UTF-8"
LC_COLLATE="C"
LC_CTYPE="C"



L'encodage est donné par LC_CTYPE. C = ASCII.

.bash_profile
LC_ALL=C
export LC_ALL



Là, tu mets tout à la locale C. Ce n'est pas bon.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
Avatar
Eric Levenez
Le 09/09/08 16:31, dans
,
« Archidemon » a écrit :

L'apparition d'un fichier dont le nom contient un e accent aigu me
cause des embarras. Lorsque je crée un fichier de vérification avec:

find . -name '*' -exec cksum  > list '{}' ';'

le fichier "list" ne contient pas le e accent aigu dont j'ai besoin
pour comparer avec une liste maîtresse.



D'abord ton find est bien étrange et marche sûrement un peu par hasard, le
plus simple :

find . -type f -exec cksum {} ; > /tmp/list

Ensuite, j'ai bien les accents dans list. J'ai tous les paramètres de Mac OS
X 10.5 par défaut. Ainsi Terminal est en UTF-8 et mon shell est bash. Je
n'ai bien sûr pas été définir les variables LC_*.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.
Avatar
Archidemon
On 9 sep, 14:19, Eric Levenez wrote:
Le 09/09/08 16:31, dans
,
« Archidemon » a écrit :

> L'apparition d'un fichier dont le nom contient un e accent aigu me
> cause des embarras. Lorsque je crée un fichier de vérification avec :

> find . -name '*' -exec cksum  > list '{}' ';'

> le fichier "list" ne contient pas le e accent aigu dont j'ai besoin
> pour comparer avec une liste maîtresse.

D'abord ton find est bien étrange et marche sûrement un peu par hasar d, le
plus simple :

    find . -type f -exec cksum {} ; > /tmp/list



Merci j'en prends note

Ensuite, j'ai bien les accents dans list. J'ai tous les paramètres de M ac OS
X 10.5 par défaut. Ainsi Terminal est en UTF-8 et mon shell est bash. J e
n'ai bien sûr pas été définir les variables LC_*.



Il y a quelques mois, après être passé à Leopard mais avant
l'apparition du fichier avec un e accent aigu, la ligne de code
suivante:

cut -f1-1 -d, fullx > ty1 ; cut -f2-2 -d, fullx > ty2 ; cut -f3-3 -d,
fullx | tr A-Z a-z > ty3

me donnait:

cut: fullx: Illegal byte sequence
cut: fullx: Illegal byte sequence
cut: fullx: Illegal byte sequence

J'ai résolu le problème avec mon .bash_profile.

Ça a bien fonctionné. Je suis prêt à me débarrasser de
mon .bash_profile mais quoi faire?

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.


Avatar
Archidemon
On 9 sep, 12:08, Vincent Lefevre <vincent+ wrote:
Dans l'article ups.com>,
  Archidemon écrit:

> mes réglages sont:
> $ locale
> LANG="fr_CA.UTF-8"
> LC_COLLATE="C"
> LC_CTYPE="C"

L'encodage est donné par LC_CTYPE. C = ASCII.

> .bash_profile
> LC_ALL=C
> export LC_ALL

Là, tu mets tout à la locale C. Ce n'est pas bon.



Veux-tu dire que je devrais tout simplement remplacer
mon .bash_profile par:

LC_CTYPE. C = ASCII

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)


Avatar
Vincent Lefevre
Dans l'article ,
Archidemon écrit:

Veux-tu dire que je devrais tout simplement remplacer
mon .bash_profile par:



LC_CTYPE. C = ASCII



Non, ce que je dis, c'est que la locale C correspond à l'ASCII.
Ne touche pas aux locales dans ton .bash_profile. Si ça ne
fonctionne pas:

export LC_CTYPE=en_US.UTF-8

ou la langue voulue au lieu de en_US.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
Avatar
Vincent Lefevre
Dans l'article ,
Archidemon écrit:

Il y a quelques mois, après être passé à Leopard mais avant
l'apparition du fichier avec un e accent aigu, la ligne de code
suivante:



cut -f1-1 -d, fullx > ty1 ; cut -f2-2 -d, fullx > ty2 ; cut -f3-3 -d,
fullx | tr A-Z a-z > ty3



me donnait:



cut: fullx: Illegal byte sequence
cut: fullx: Illegal byte sequence
cut: fullx: Illegal byte sequence



Ah, c'est différent. Là ça n'a rien à voir avec le nom du fichier.
C'est le contenu de fullx qui pose problème. Ce que tu veux, c'est:

(export LC_ALL=C; cut -f1-1 -d, fullx > ty1 ; cut -f2-2 -d, fullx > ty2 ; cut -f3-3 -d, fullx | tr A-Z a-z > ty3)

Note: les parenthèses permettent de lancer le tout dans un sous-shell.
Ainsi la modification de l'environnement (LC_ALL=C) sera uniquement
locale. En gros, mettre LC_ALL=C revient plus ou moins à désactiver
les locales: on passe au comportement "par défaut". En particulier,
le cut ne va pas chercher à interpréter les octets comme caractères
spécifiques (pour les non-ASCII). C'est utile si tu es en UTF-8 mais
que certains de tes fichiers sont en ISO-8859-*.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
Avatar
Archidemon
On 10 sep, 10:38, Vincent Lefevre <vincent+ wrote:
Dans l'article oups.com>,
  Archidemon écrit:

> Il y a quelques mois, après être passé à Leopard mais avant
> l'apparition du fichier avec un e accent aigu, la ligne de code
> suivante:
> cut -f1-1 -d, fullx > ty1 ; cut -f2-2 -d, fullx > ty2 ; cut -f3-3 -d,
> fullx | tr A-Z a-z > ty3
> me donnait:
> cut: fullx: Illegal byte sequence
> cut: fullx: Illegal byte sequence
> cut: fullx: Illegal byte sequence

Ah, c'est différent. Là ça n'a rien à voir avec le nom du fichier .
C'est le contenu de fullx qui pose problème. Ce que tu veux, c'est:

(export LC_ALL=C; cut -f1-1 -d, fullx > ty1 ; cut -f2-2 -d, fullx > ty2 ; cut -f3-3 -d, fullx | tr A-Z a-z > ty3)

Note: les parenthèses permettent de lancer le tout dans un sous-shell.
Ainsi la modification de l'environnement (LC_ALL=C) sera uniquement
locale. En gros, mettre LC_ALL=C revient plus ou moins à désactiver
les locales: on passe au comportement "par défaut". En particulier,
le cut ne va pas chercher à interpréter les octets comme caractères
spécifiques (pour les non-ASCII). C'est utile si tu es en UTF-8 mais
que certains de tes fichiers sont en ISO-8859-*.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)



J'ai éliminé mon .profile et j'ai mis les parenthèses. En effet, je
n'ai pas de "Illegal byte sequence". Merci!

Toutefois, le résultat de:

find . -name '*' -exec cksum > list '{}' ';'

Ne contient toujours d'accent aigu.
Avatar
Eric Levenez
Le 12/09/08 19:31, dans
,
« Archidemon » a écrit :

Toutefois, le résultat de:

find . -name '*' -exec cksum > list '{}' ';'



Pourquoi vouloir utiliser cette mauvaise syntaxe ?

Ne contient toujours d'accent aigu.



Il faut que tu supprimes tout ce que tu as fait pour retrouver un système
propre qui marchera sans aucun problème dans sa configuration d'origine.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.
Avatar
Archidemon
On 12 sep, 14:11, Eric Levenez wrote:
Le 12/09/08 19:31, dans
,
« Archidemon » a écrit :

> Toutefois, le résultat de:

> find . -name '*' -exec cksum  > list '{}' ';'

Pourquoi vouloir utiliser cette mauvaise syntaxe ?



Ce n'est qu'un exemple simplifié qui représente une ligne type que
j'utilise à plusieurs endroits. Voici un exemple concret:

find . -name '*.[Jj][Pp][Gg]' -exec cksum -o3 > temp1 '{}' ';'

et ça a toujours marché.

> Ne contient toujours d'accent aigu.

Il faut que tu supprimes tout ce que tu as fait pour retrouver un systè me
propre qui marchera sans aucun problème dans sa configuration d'origine .



Que dois-je supprimer exactement? veux-tu dire réinstaller Leopard?

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.


Avatar
Eric Levenez
Le 12/09/08 21:07, dans
,
« Archidemon » a écrit :

On 12 sep, 14:11, Eric Levenez wrote:
Le 12/09/08 19:31, dans
,
« Archidemon » a écrit :

Toutefois, le résultat de:



find . -name '*' -exec cksum  > list '{}' ';'



Pourquoi vouloir utiliser cette mauvaise syntaxe ?



Ce n'est qu'un exemple simplifié qui représente une ligne type que
j'utilise à plusieurs endroits. Voici un exemple concret:

find . -name '*.[Jj][Pp][Gg]' -exec cksum -o3 > temp1 '{}' ';'

et ça a toujours marché.



Marchouillé :-) Le '*' est peut-être pour éviter . et .., mais si tu as des
sous-répertoires, tu auras des erreurs avec cksum. De plus, on place
traditionnellement la redirection à la fin pour ne pas la mélanger aux
arguments, cela permet aussi de facilement chaîner les commandes.

Ne contient toujours d'accent aigu.



Il faut que tu supprimes tout ce que tu as fait pour retrouver un système
propre qui marchera sans aucun problème dans sa configuration d'origine.



Que dois-je supprimer exactement? veux-tu dire réinstaller Leopard?



Réinstaller non, mais toi seul sait ce que tu as fait sur ta machine. Essaye
par exemple en te connectant avec un nouveau compte pour voir si tout se
passe bien avec celui-ci. Après tu n'auras qu'à regarder les différences
entre les deux comptes.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.
1 2 3