Pour demander de l'aide, vous devez vous créer un compte et vous connecter. Utilisez les boutons sociaux ci-dessous depuis ce lien : S'inscrire sur le forum
Plus d'informations : Comment demander de l’aide sur le forum

[système] unicode et problème grep etc en console

Avant de poser une question, voyez si on n'y a pas déjà répondu pour vous !

Modérateur : Mods GNU/Linux

Malekal_morte
Site Admin
Site Admin
Messages : 101971
Inscription : 10 sept. 2005 13:57
Contact :

[système] unicode et problème grep etc en console

Message par Malekal_morte »

Les fichiers en unicode venant du monde de Windows sont souvent en UTF-16 et peuvent poser des problèmes en console.
(Certains programmes du monde Windows ont tendance à générer cet encodage par défaut.)

Code : Tout sélectionner

[email protected]:/tmp$ file test.txt 
test.txt: Little-endian UTF-16 Unicode text, with CRLF line terminators
Les caractéristiques de ces ficheirs sont des caractères �� en début de fichiers.

Code : Tout sélectionner

[email protected]:/tmp$ cat test.txt |more
��ceci est une d�mo 

Coin Coin <o_/

http
Grep ne fonctionne pas et ne renvoit rien.

Code : Tout sélectionner

[email protected]:/tmp$ cat test.txt |grep http
[email protected]:/tmp$ 
La conversion en ASCII ne fonctionne pas car uni2ascii converti des fichiers au format UTF-8

Code : Tout sélectionner

[email protected]:/tmp$ uni2ascii test.txt 
Invalid UTF-8 code encountered at byte 0, character 0.
[email protected]:/tmp$ !cat
cat test.txt |more
��ceci est une d�mo 

Coin Coin <o_/

Solution :

La solution est de convertir le fichier en UTF-8, la commande iconv peut vous y aider.

Code : Tout sélectionner

[email protected]:/tmp$ iconv --from-code=UTF-16 --to-code=UTF-8 test.txt> test2.txt
[email protected]:/tmp$ cat test2.txt |grep http
http
[email protected]:/tmp$ file test2.txt 
test2.txt: UTF-8 Unicode text, with CRLF line terminators
vim peut aussi faire le boulot (thanx captnfab) :

Code : Tout sélectionner

:set fileformat=unix
:set fenc=utf8
:wq
Le Bloc-note en unicode enregistre automatiquement en UTF-16.
Vous pouvez alors réenregistrer le fichier depuis Windows dans un autre format (voir capture ci-dessous) :
Image

Première règle élémentaire de sécurité : on réfléchit puis on clic et pas l'inverse - Les fichiers/programmes c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas !
Comment protéger son PC des virus

Les tutoriels Windows 10 du moment : Comment demander de l'aide sur le forum
Partagez malekal.com : n'hésitez pas à partager les articles qui vous plaisent sur la page Facebook du site.

Revenir à « Tutoriels et annonces »