====== Introduction ====== Puisqu'il est temps de mettre correctement par écrit tout ce qui est utile à la gestion de l'encodage voici un début de page. C'est aussi le moment de réviser [[http://fr.wikipedia.org/wiki/Unicode|l'unicode]] ou [[http://fr.wikipedia.org/wiki/ASCII|l'ASCII.]] ====== Les bases et le mode binaire ====== Pour les bases rien de tel que la [[http://docs.oracle.com/javase/tutorial/essential/io/|documentation officielle]] pour revoir les bases de l'I/O. D'ailleurs, la première étape pour moi est de savoir [[http://docs.oracle.com/javase/tutorial/essential/io/bytestreams.html|lire écrire simplement en mode binaire]]. Bien sur pensez aussi à [[http://docs.oracle.com/javase/tutorial/essential/io/buffers.html|la version bufferisée]] pour optimiser. A noter que les lectures de ce type ne déforment pas l'encodage. On lit / écrit ici des bytes un par un et on les écrits tel que. C'est l'unité universelle et donc lire / écrire en mode byte ne nuit normalement pas a l'encodage. ====== Gérer l'encodage ====== La ou les choses se gâtent, c'est quand on va commencer a vouloir travailler sur du String ou tout simplement des conversions d'encodage. La encore la [[http://docs.oracle.com/javase/tutorial/i18n/text/string.html|doc officielle]] est assez utile. A noter que dans les applications, la cohérence de l'encodage doit être respectée à chaque maillon de la chaine. Depuis la lecture de la donnée initiale, jusqu'à son affichage en passant par son stockage intermédiaire. Si on ne lit / écrit pas dans le bon encodage à un seul endroit, le résultat final sera forcément corrompu.