IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Fichier sauvé en UTF-8 reocnnut comme ansi ?


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 56
    Par défaut Fichier sauvé en UTF-8 reocnnut comme ansi ?
    Bonjour,

    j'ai une application qui extrait des données d'une DB pour en faire des fichiers Xml. Cette application génères plus de 36000 fichiers. Sur ces 36000 fichiers j'en ai +- 1000 qui, lorsqu'ils sont ouvert avec notepad++ sont reconnus comme étant encodé en ANSI au lieu d'être encodé en UTF-8.

    Je précise que ces fichiers n'ont rien de particulier. Ils ne contiennet pour la pluspart que des informations de base contenu dans tout les produits (le plus gros fait 56k alors que la taille moyenne des fichiers est de 112k).

    Quelqu'un aurait une idée de la raison pour laquelle ces fichiers ne sont pas considéré comme utf-8 ?

    Ici, un exemple de fichier considéré comme ansi : http://www.megaupload.com/?d=IUK7VUSE

    A noter que lorsque je le convertit en UTF-8 via notepad++, je n'ai aucune différence visible et si je sauve le fichier convertit et que je le réouvre, l'encodage est de nouveau ANSI

    Ici un exemple du code utilisé pour sauver les fichiers (inclus dans une classe de test qui lit et sauve le fichier)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    public class test {
     
    	public static void main(String[] args) {
    //		parseFile("C:/existXml/nl/");
    //		String tmp = loadFile("c:/existxml/fr/2089-829fr.xml");		
    //		String tmp = loadFile("c:/existxml/test.txt");
    		String tmp = loadFile("c:/temp/0013-219nl.xml");
    		saveToFile("c:/temp/0013-219nlUTF.xml", tmp, true);		
    	}
     
    	public static String loadFile(String f) {
    	    try {
     
    	    	//InputStreamReader b = new InputStreamReader(new FileInputStream(new File(f)), "UTF-8");
    	    	//BufferedReader br = new BufferedReader(b);
    	    	BufferedReader br = new BufferedReader(new FileReader(new File(f)));
     
    	       String result ="";
    	       String line;
    	       while ((line = br.readLine()) != null ) {
    	    	   result = result + line;
    	       }
    	       return result;
    	    }
    	    catch (Exception ie)
    	    {
    	         ie.printStackTrace(); 
    	         return null;
    	    }
    	}
     
    private static void saveToFile(String FileName, String content, boolean isUTF) {
    		try { 
     
    			FileOutputStream out = new FileOutputStream(FileName);
    			OutputStreamWriter writer = new OutputStreamWriter(new BufferedOutputStream(out), "UTF-8");
    //			OutputStreamWriter writer = new OutputStreamWriter(new BufferedOutputStream(out));			
    			BufferedWriter w = new BufferedWriter(writer); 
    			System.out.println(content);
    			if (isUTF) 
    				w.write(content);
    			else 
    				w.write(content);	
    			w.flush();
    			w.close();
    			out.close(); 
    		} catch (Exception e) {
    			e.printStackTrace();		
    		}
    	}
     
    }

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par Eylir Voir le message
    Quelqu'un aurait une idée de la raison pour laquelle ces fichiers ne sont pas considéré comme utf-8 ?
    Assez souvent, le charset d'un fichier ne peut pas être autodétecté. Dans ce cas-là, les éditeurs de texte n'essaient pas de le faire, ils en choisissent un arbitrairement. Notepad++ pourrait simplement décider de l'ouvrire en ANSI parce qu'il ne sait pas dire quel est l'encodage. Il n'a rien "reconnu", il ne sait pas, c'est tout.

    Citation Envoyé par Eylir Voir le message
    Ici, un exemple de fichier considéré comme ansi : http://www.megaupload.com/?d=IUK7VUSE
    Chez moi Notepad++ l'ouvre en UTF-8, probablement grâce à la présence de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" encoding="UTF-8"?>
    Si ce n'est pas le cas chez toi, tu devrais mettre Notepad++ à jour.

    Citation Envoyé par Eylir Voir le message
    A noter que lorsque je le convertit en UTF-8 via notepad++, je n'ai aucune différence visible et si je sauve le fichier convertit et que je le réouvre, l'encodage est de nouveau ANSI
    C'est normal : ce fichier ne contient que des caractères ASCII et n'a pas de BOM. Il est donc 100% identique en UTF-8 ou en ANSI (ou en ASCII, ou en Shift-JIS, ou en beaucoup de choses).
    Seul <?xml version="1.0" encoding="UTF-8"?> indique qu'il faudrait le lire en utf-8. En réalité il n'y a pas de différence.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [VBA-E] fichiers texte en UTF-8
    Par SpaceFrog dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/11/2006, 21h16
  2. Réponses: 14
    Dernier message: 24/08/2006, 13h53
  3. Lecture d'un fichier texte en UTF-8
    Par EL0807 dans le forum Access
    Réponses: 2
    Dernier message: 07/08/2006, 22h54
  4. Réponses: 10
    Dernier message: 20/02/2006, 16h04
  5. [File][UTF-16]comment creer un fichier xml en utf-16?
    Par Invité dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/01/2006, 15h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo