Outils pour utilisateurs

Outils du site


linux:utf8 (lu 15650 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révision Les deux révisions suivantes
linux:utf8 [29-02-2012 10:15]
edmc73
linux:utf8 [19-05-2014 15:05]
edmc73
Ligne 74: Ligne 74:
 |euc-kr |coréen (Unix uniquement)| |euc-kr |coréen (Unix uniquement)|
 |cp936 |chinois simplifié (Windows uniquement)| |cp936 |chinois simplifié (Windows uniquement)|
-|euc-cn |chinois simplifié (Unix uniquement)|+|euc-cn |chinois simplifié (Unix uniquement)|U+2018 (Left Single Quotation Mark)
 |cp950 |chinois classique (sur Unix, alias pour big5)| |cp950 |chinois classique (sur Unix, alias pour big5)|
 |big5 |chinois classique (sur Windows, alias pour cp950)| |big5 |chinois classique (sur Windows, alias pour cp950)|
Ligne 89: Ligne 89:
  
 ===== Script pour réencoder les fichiers d'un site web ===== ===== Script pour réencoder les fichiers d'un site web =====
 +Ce script permet d'encoder des fichiers en utf8.\\
 +Modifiez les variables **chemin** et **extension** suivant ce que vous voulez faire.\\
 +Rendez exécutable le script avec **chmod +x encode_utf8.bash**\\
 +Puis lancez le **./encode_utf8.bash**
  
 +Le script va analyser tous les fichiers du répertoire et des sous répertoire que vous avez spécifié.\\
 +Si l'encodage est **iso-8859-1**, la commande **recode** encode le fichier en utf8.\\
 +Si l'encodage est **utf-8**, rien n'est fait.\\
 +Si l'encodage est différent, le script vous demandera si vous voulez tenter d'encoder le fichier en **utf-8**.
  
 +D'après mes tests, certains fichiers apparaissent en **us-ascii** et je ne suis pas parvenu à les encoder en **utf-8** mais ces fichiers ne semblent pas poser de problèmes.
 +
 +<file bash encode_utf8.bash>
 +#!/bin/bash
 +
 +# Renseigner le répertoire à traiter
 +chemin="/var/www/siteweb/"
 +extension="php|html|css|js"
 +
 +atraiter=`/usr/bin/find $chemin -regextype posix-extended -type f -iregex '.*\.('${extension}')$'`
 +
 +for i in $atraiter
 +do
 +        enc=`file --mime-encoding $i | awk '{ print $2 }'`
 +        if [ $enc = "iso-8859-1" ] ; then
 +                recode $enc..utf-8 $i
 +                echo -e "$i \\033[1;32m Conversion effectuée \\033[0;39m"
 +        elif [ $enc = "utf-8" ] ; then
 +                echo -e "$i \\033[1;36m Déjà en utf8 \\033[0;39m"
 +        else
 +                echo -e "\\033[1;31m /!\\ \\033[0;39m $i\nEncodage: $enc"
 +                PS3="> L'encodage de ce fichier n'est pas standard, voulez vous essayer de le convertir quand même en UTF8 ?"   # le prompt
 +                LISTE=("[o] oui" "[n]  non" # liste de choix disponibles
 +                select CHOIX in "${LISTE[@]}" ; do
 +                    case $REPLY in
 +                        1|o)
 +                        recode $enc..utf-8 $i
 +                        echo -e "\\033[1;32m Conversion effectuée \\033[0;39m"
 +                        break
 +                        ;;
 +                        2|n)
 +                        echo Aucun réencodage de fait.
 +                        break
 +                        ;;
 +                    esac
 +                done
 +        fi
 +done
 +
 +echo
 +</file>
 +
 +===== Mysql =====
 +
 +Soit vous réencodé toute la base comme détaillé sur ce site http://docs.moodle.org/19/fr/Convertir_votre_base_MySQL_en_UTF-8
 +
 +Soit vous faite la méthode comme moi qui consite à rajouter la ligne
 +  mysql_query("SET NAMES 'utf8'");
 +Dans votre fichier de connexion à la base.
 +
 +===== Réencoder des noms de fichiers avec des caractères bizarre =====
 +L'utilitaire qui va bien est **detox**
 +
 +Le plus simple, mettez dans un répertoire tous les avec des caractères bizarre et lancez la commande
 +  detox *
 +Le nom de vos fichiers sera lisible ;)
 +
 +Plein d'options dans le man http://linux.die.net/man/1/detox
 +
 +===== Fichier hybride =====
 +
 +Dans le cas de fichier mixte ou on retrouve plusieurs encode dufférent, le système est complètement perdu.
 +
 +Il faut alors faire des rechercher/remplacer sur des caractères spécifique souvent issue de Mac ou pas.
 +
 +Caractères spéciaux à rechercher
 +
 +  * U+2018 (Left Single Quotation Mark)
 +
 +
 +(d'autre suivront au fure et à mesure que je galère..)
linux/utf8.txt · Dernière modification: 03-05-2016 14:16 de edmc73