Aller au contenu

Coder avec Unicode/L' accès aux fichiers

Un livre de Wikilivres.

Cette page est considérée comme une ébauche à compléter . Si vous possédez quelques connaissances sur le sujet, vous pouvez les partager en éditant dès à présent cette page (en cliquant sur le lien « modifier »).

Ressources suggérées : Aucune (vous pouvez indiquer les ressources que vous suggérez qui pourraient aider d'autres personnes à compléter cette page dans le paramètre « ressources » du modèle? engendrant ce cadre)

Les noms de fichiers

[modifier | modifier le wikicode]

Le langage C n'offre pas de facilité spécifique pour accéder aux fichiers avec Unicode. Il faut donc s'appuyer sur des bibliothèques qui ne seront pas les mêmes dans Visual Studio et dans un environnement libre.

Sous Visual Studio, il est possible d'écrire :

L"this is a literal string"

En Java, les classes dérivant de Reader permettent de lire des caractères.

try(InputStreamReader in = new InputStreamReader(new FileInputStream(filepath), "UTF-8"))
{
    //... lecture en UTF-8
}

Pour obtenir la liste des noms de fichier d'un répertoire, sous Windows 7 et en UTF-8, le code suivant peut être utilisé[1] :

 open fList, '-|:encoding(UTF-16LE)', 'cmd /U /C dir /W'; open fOut, '>', 'out.txt';
 foreach (<fList>) 
 {
    utf8::encode($_);
    print fOut $_; 
 }

en python 2, il vous faudra utiliser le module codecs et ouvrir le fichier que vous voulez manipuler ( écriture, lecture, etc...) avec l'encodage utf8.

import codecs

thefile = codecs.open('lefichier', encoding='utf-8')

vous pourrez alors écrire une chaine ou lire dans ce fichier par les méthodes read ou write

unicodeString = thefile.readline()

ou

thefile.write(u'ligne unicode')

Plusieurs fonctions existent dans le package UTL_FILE[2]:

  • FOPEN_NCHAR
  • GET_LINE_NCHAR
  • PUT_NCHAR
  • PUT_LINE_NCHAR
  • PUTF_NCHAR
  1. http://www.perlmonks.org/?node_id=536223
  2. docs.oracle.com/cd/B19306_01/server.102/b14225/ch7progrunicode.htm