Il y aura un certain nombre de situations dans lesquelles des gens ordinaires recevront des fichiers créés avec Excel ou Word sur une machine Windows et traiteront des informations sous Linux. J'ai résumé les bases de la procédure de conversion de données qui sera nécessaire à ce moment-là.
Ici, le fichier de noms japonais est un fichier dans lequel des caractères dits pleine largeur sont utilisés dans le nom de fichier.
unzip -O cp932 Archive contenant des fichiers de noms japonais.zip
cp932 est une norme de code de caractère étendue par Microsoft pour déplacer JIS.
référence: En fait pas effrayant CP932
convmv -f cp932 -t utf-8 * --notest
Dans le cas d'ubuntu, la commande convmv
n'est pas installée par défaut, vous devez donc ʻapt installer convmv` à l'avance.
Si un fichier avec un nom japonais est extrait de zip sous Linux par la procédure "standard", il semble qu'il sera converti en UTF-8 avec des caractères déformés de manière inappropriée, et même si vous essayez de convmv après cela, " «Il a été traité» est simplement refusé. Il n'y a pas d'autre choix que d'abandonner et de ré-extraire du fichier zip d'origine selon la procédure ci-dessus.
Convertit le texte shift jis en UTF-8, convertit en outre le code de saut de ligne du standard Windows CR / LF en LF et écrit le résultat dans un nouveau fichier.
iconv -f cp932 -t utf-8 Nom du fichier cible| sed 's/\r//g' >Nom du fichier de destination de sortie
J'ai également envisagé une méthode pour traiter tous les fichiers du répertoire actuel à la fois. Écrivons le contenu converti en créant un fichier avec le même nom dans le sous-répertoire ʻutf8`. Utilisez le traitement en boucle bash.
#!/bin/bash
[ -d utf8 ] || mkdir utf8
for a in *
do iconv -f cp932 -t utf-8 $a | sed 's/\r//g' > utf8/$a
done
Recommended Posts