Script Bash, charset, transformer un fichier en UTF-8

Si comme votre serviteur, la conversion des codages des caractères, ça vous mets les glandes, voici un script simple qui transforme tout en UTF-8, bien sur sans demander le format de la source. Il m’est fort utile pour la conversion des sous titres.

Il se regarde un peu plus bas, et se télécharge par ici ou avec la commande dessous.

git clone https://github.com/Jocker666z/charset-conv


Utilisation :

./charset-conv.sh fichier.à.convertir

Script :

#!/bin/bash
# Charset-conv
# https://github.com/Jocker666z/charset-conv
# Fork of https://github.com/odedlaz/subconv under MIT licence

files="$@"
for file in $files
do
	if [ ! -f "$file" ];
	then
		echo "$file not found"
		continue
	fi
	
	file_charset=$(file -i "$file" | awk '{ print $3 }' | cut -c 9-)

	if [ $file_charset = unknown-8bit ];
	then  
		file_charset=$(chardetect "$file" | grep -Po '(?<=: ).*(?=with)' | tr -d ' ') fi if [ ! $file_charset ] then echo "couldn't determine charset" continue fi echo "file: $file charset: $file_charset" if [ $file_charset != "utf-8" ] then echo "converting to utf-8" iconv -f $file_charset -t utf-8 $file > /tmp/iconv_tmp
		mv /tmp/iconv_tmp $file	
	fi
	echo "done!"
done
exit 0

Laisser un commentaire

Votre adresse de messagerie ne sera jamais publiée, ou utilisée à des fins commerciales. Les champs obligatoires sont indiqués avec des *.

Vous pouvez utiliser les balises de mise en forme