Caractères spéciaux sous unix
Résolu/Fermé- Caractères spéciaux sous unix
- Caractères spéciaux clavier azerty - Guide
- Caractere speciaux - Guide
- Caractères ascii - Guide
- Caractères spéciaux mac - Guide
- 8 caractères exemple - Guide
10 réponses
9 nov. 2022 à 15:31
hello
que répond
file MONFICHIER.csv
Déjà merci pour la réponse.
Voici le résultat de la commande :
$ file MONFICHIER.csv
MONFICHIER.csv: ascii text
10 nov. 2022 à 12:01
Bonjour,
Peux-tu partager un csv minimal qui met en évidence le problème sur un site comme https://www.cjoint.com/.
Tu as effectivement un problème d'encodage et ta commande iconv n'utilise probablement pas le bon encodage source ou cible. Côté Linux je te recommande de toujours n'utiliser que de l'UTF-8. Typiquement la commande locale devrait retourner :
(mando@silk) (~) $ locale
LANG=fr_FR.UTF-8
LANGUAGE=
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=
Par ailleurs, plutôt que de passer par iconv pour corriger l'encodage a posteriori, c'est plutôt au moment d'interroger ta base Oracle que tu devrais spécifier l'encodage de ton fichier csv (voir ce lien).
Bonne chance
Merci pour la réponse.
Je enlevé le iconv , mais j'ai le même soucis , et pour la base , elle est pas interrogé par windows , mais en unix.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question10 nov. 2022 à 14:09
Bonjour,
- Comment l'interroges-tu (quel logiciel, quelle requête) ?
- Peux-tu partager un exemple minimal de ton fichier csv ?
- As-tu essayé cette solution ?
Bonne chance
- la connexion est sur une base oracle 19c , via sqlplus
- la requette :
SELECT '1;','2;','3;',.......,'n;' FROM ZT00 T00,
table1,
table2,
table3,
......
dans le champs 3 et 4 il y'a l'info : "realisée" et "présent"
qui sont correctement mentionnés avec les "é"
je redirige vers un fichier MONFICHIER.csv , mais dans mon fichier que j'ouvre sous unix , je vois les caracteres "é" a la place des "é"
- exemple du fichier :
NOM Prenom lieu STATUT STATUT ANNEE
X X X Réalisée Présent 2020
- pour tester la solution , je ne sais pas ou placer le "'UTF8', 'WE8MSWIN1252')" , j'ai tellement de champs :-(
10 nov. 2022 à 16:18
Bonjour,
je redirige vers un fichier MONFICHIER.csv , mais dans mon fichier que j'ouvre sous unix , je vois les caracteres "é" a la place des "é"
Peux-tu préciser comment tu procèdes pour faire cette redirection ?
Peux-tu partager ton fichier CSV (au moins quelques lignesà sur cjoint qui met le problème en évidence, comme demandé dans le message #3 ?
spool MONFICHIER.csv
SELECT '1;','2;','3;',.......,'n;' FROM ZT00 T00,
table1,
table2,
table3,
......
spool off
mis un exemple de fichier dans : https://www.cjoint.com/c/LKkpKuEB2Nq
14 nov. 2022 à 20:02
Bonjour,
Peux-tu partager le fichier csv que tu as généré plutôt qu'un export excel ?
En copiant collant le contenu de ton fichier excel dans un fichier Excel j'ai obtenu ceci :
(mando@silk) (~) $ cat toto.csv
NOM Prenom STATUT_SESSION STATUT_STAGIAIRE ANNEE_STAGE
Pierre Dupond Réalisée Présent 2020
Michel LEMOINE Réalisée Présent 2020
Marie TALEU Réalisée Présent 2020
Vu la tête des caractère, ça ressemble à du CP1252 (Unicode) converti à tort en UTF-8 deux fois de suite. Et en faisant la transformation inverse deux fois, j'arrive à récupérer les bons caractères :
(mando@silk) (~) $ iconv -f UTF-8 -t CP1252 toto.csv | iconv -f UTF-8 -t CP1252
NOM Prenom STATUT_SESSION STATUT_STAGIAIRE ANNEE_STAGE
Pierre Dupond Réalisée Présent 2020
Michel LEMOINE Réalisée Présent 2020
Marie TALEU Réalisée Présent 2020
Pour récupérer le fichier tu peux donc lancer :
(mando@silk) (~) $ iconv -f UTF-8 -t CP1252 toto.csv | iconv -f UTF-8 -t CP1252 > tata.csv
(mando@silk) (~) $ cat tata.csv
NOM Prenom STATUT_SESSION STATUT_STAGIAIRE ANNEE_STAGE
Pierre Dupond Réalisée Présent 2020
Michel LEMOINE Réalisée Présent 2020
Marie TALEU Réalisée Présent 2020
(mando@silk) (~) $ file tata.csv
tata.csv: Unicode text, UTF-8 text
Je ne connais pas oracle dans le détail, mais clairement, l'encodage utiliser par ta commande SPOOL n'est pas le bon. Je t'invite donc à regarder cette discussion.
Bonne chance