Skip to content

Instantly share code, notes, and snippets.

@mistergraphx
Created July 21, 2016 14:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mistergraphx/e178c2006ce8f9490c3b0c0ab1df6e14 to your computer and use it in GitHub Desktop.
Save mistergraphx/e178c2006ce8f9490c3b0c0ab1df6e14 to your computer and use it in GitHub Desktop.
CONVERTION ISO1 vers UTF8
cat <<EOF
------------------------------------------
CONVERTION ISO1 vers UTF8
------------------------------------------
Utilisé pour convertir un spip < 1.9.x
Vers Spip 2.1.X en utf8
- convertion d'une liste de fichiers
perl -MENCODE traitement des caractères spéciaux
- sed sur latin1 -> utf8 dans la déclaration des tables
+ passage en InnoDB
- sed sur les caractère foireux qui resteraient
EOF
echo -n "Choix du répertoire :"
read chemin
CHEMIN=$chemin/
cd $CHEMIN
# TODO : MODE 10 : tester si $CHEMIN est un répertoire !!
#list=`ls "$CHEMIN"`
for fichier in *
do
echo $CHEMIN"$fichier"
perl -MEncode -pe 'for $a qw(à è ì ò ù À È Ì Ò Ù ä ë ï ö ü Ä Ë Ï Ö Ü á é í ó ú ç Á É Í Ó Ú Ç ÿ æ œ € © ° â ê î ô û Â Ê Î Ô Û ß » « ¢) { $c = encode ("UTF-8", $a) ; s/$c/$a/g ; };' "$fichier" > "$fichier".mod
# On remplace MyISAM pa InnoDB et latin par Utf (http://dev.mysql.com/doc/refman/5.0/fr/converting-tables-to-innodb.html)
cat "$fichier".mod | sed -e 's/latin1/utf8/g' | sed -e 's|MyISAM|InnoDB|g' >"$fichier".utf.sql
# /!\ iconv -f ISO8859-1 -t UTF-8 fichier > destination
# degré signe degré) | apostrophe typo | groupe 3 points | œ | — grd tiret | À |€ | É -> É | È->È | Ç -> Ç | Ô-> Ô |ñ -> ù | Å’ => Œ
cat "$fichier".utf.sql | sed -e 's|°|°|g' | sed -e 's|’|’|g' | sed -e 's|…|…|g' | sed -e 's|Å“|œ|g' | sed -e 's|–|–|g' | sed -e 's|À|À|g' | sed -e 's|€|€|g' | sed -e 's|É|É|g' | sed -e 's|È|È|g' | sed -e 's|Ç|Ç|g' | sed -e 's|Ô|Ô|g' | sed -e 's|ñ|ù|g' | sed -e 's|Å’|Œ|g' | sed -e 's|√©|é|g' | sed -e 's|√™|ê|g' | sed -e 's|√†|à|g' > "$fichier".convertit.sql
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment