« Retourner à la documentation(Brouillon) Unicode et UTF-8Fffff … toutes ces heures passées à endurer ces problèmes d'encodages.Je me devais de partager avec vous ce que j'en ai appris. Si vous ne savez pas exactement la différence entre l'unicode et l'utf-8, allez voir cette excellente vidéo : [en] http://nedbatchelder.com/text/unipain.html Vous avez aussi ces 2 excellents liens : - http://sebsauvage.net/python/charsets_et_encoding.html - http://sametmax.com/lencoding-en-python-une-bonne-fois-pour-toute/ Règle n°1: Autant que possible utiliser l'UTF-8 partout, tout le temps. Le(s) problème(s), s'il y en a, ne viennent pas de l'UTF-8. L'UTF-8 est la solution à tout ces problèmes. LA SEULE solution admissibles. Alors d'où viennent les problèmes ? Du fait que l'informatique a encore du retard a rattrapé et que, par défaut, il reste encore beaucoup trop de programmes / langages / etc utilisant des encodages stupides et arriérés par défaut :/ Le problème PHP : Ahhh PHP .___. Conseil : Si vous pouvez, ne commencez jamais à l'utiliser PHP, malgré qu'il soit si répandu, gère très mal l'UTF-8 par défaut :/ http://www.phpwact.org/php/i18n/utf-8 - N'utilisez pas htmlentities mais htmlspecialchars (et plus besoin d'arguments supplémentaires pour être réglo du coup) Le problème MySQL : Si vous n'avez pas MySQL5.3, pensez à mettre à jour ou changer d'hébergeur. En effet, MySQL avant 5.3 ne possède pas la collation utf8mb4_unicode_ci. Or, seul utf8mb4 est capable de stocker des caractères utf8 de plus de 3 bytes. Rappel : Par défaut, le protocole de communication de ce fichu SQL, est ISO-quelque chose (c'est très mal et il risque de vous convertir vos beaux caractères UTF-8). Pensez bien à exécuter la requête SET NAMES utf8 en premier lieu ! Si vous ne pouvez vraiment pas passez à une version supérieur ou égale à MySQL5.3, il reste quand même un sale hack : Récupérer le code point du caractère ( http://stackoverflow.com/a/3742879/1524913 ) et vérifier s'il fait plus de 4 bytes, dans ce cas, remplacer le caractère par son équivalent XML (comme le fait htmlentities). Le problème Windows : Si vous comptez utilisez la console Windows, vous serez fortement limité. Un "hack" consiste à forcer le changement de la police de la console (même si on ne devrait jamais modifier l'environnement d'un programme normalement, ici c'est presque légitime vu à quel point Windows est toujours dans le siècle dernier) et d'utiliser ceci : http://www.janthor.com/sketches/index.php?/archives/19-How-to-change-the-font-of-the-Windows-console-with-Python.html Dernière modification le 29/07/2013 à 2h58 » Commenter cet article / 0 commentaire(s)
|