Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1495 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] Distinguer un fichier ASCII d'un fichier unicode

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JAVA] Distinguer un fichier ASCII d'un fichier unicode

n°254572
charlene
Verba volant, scripta manent
Posté le 26-11-2002 à 22:26:38  profilanswer
 

Existe-t-il un moyen simple de faire cela ?


---------------
Défiance (ou méfiance) est mère de sûreté  
mood
Publicité
Posté le 26-11-2002 à 22:26:38  profilanswer
 

n°254574
--greg--
Posté le 26-11-2002 à 22:27:16  profilanswer
 

ben tu consideres tout comme de l'unicode et basta


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°254576
lorill
Posté le 26-11-2002 à 22:30:07  profilanswer
 

--greg-- a écrit a écrit :

ben tu consideres tout comme de l'unicode et basta




euh... et tu lis deux octets par deux, et tu loupes la moitié  :o

n°254595
--greg--
Posté le 26-11-2002 à 22:45:31  profilanswer
 

ben non
en unicode les caracteres ascii sont pas encodés
les autres sont précédés de \u  
je raconte n'importe quoi? :/


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°254609
lorill
Posté le 26-11-2002 à 22:51:28  profilanswer
 

--greg-- a écrit a écrit :

ben non
en unicode les caracteres ascii sont pas encodés
les autres sont précédés de \u  
je raconte n'importe quoi? :/




je pense, vu que pour une dll a la con windows a laquelle je devais m'interfacer et qui me permettait de recupérer les mots de passes, je lisais qu'un octet sur 2 (car cette merde d'api te file de l'unicode...)

n°254615
--greg--
Posté le 26-11-2002 à 22:57:17  profilanswer
 

ben en fait ça depend ss doute de quel type d'encodage on parle, mais (hop hop je reviens sur mes paroles discretement) il me semble que c'est genre: tu lis 1 octet: si < telle valeur ==> c de l'ascii, sinon tu prend le(s) suivant(s) en compte pour récupérer le caractere unicode
bon en meme temps si dans ton fichier ascii t'as de l'ascii étendu tu es pê de la baise. j'en sais trop rien en fait.
 
mais chuis persuadé qu'il y a moyen de lire les 2 sans devoir savoir à priori si c ascii pur ou unicode


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°254618
lorill
Posté le 26-11-2002 à 23:00:24  profilanswer
 

Un premier test a faire, c'est déja voir si file est capable de faire a différence...

n°254620
--greg--
Posté le 26-11-2002 à 23:00:58  profilanswer
 

avec un Reader derrière, je pense que oui ;)


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°254625
lorill
Posté le 26-11-2002 à 23:02:38  profilanswer
 

--greg-- a écrit a écrit :

avec un Reader derrière, je pense que oui ;)




 :non: je parlais de la commande unix

n°254626
lorill
Posté le 26-11-2002 à 23:03:18  profilanswer
 

--greg-- a écrit a écrit :

avec un Reader derrière, je pense que oui ;)




j'avais même pas vu qu'on est dans un topic java :lol:
dans ce cas oui, tu prends un FileReader et il se démerde...

mood
Publicité
Posté le 26-11-2002 à 23:03:18  profilanswer
 

n°254633
--greg--
Posté le 26-11-2002 à 23:06:03  profilanswer
 

lorill a écrit a écrit :

 
j'avais même pas vu qu'on est dans un topic java :lol:
dans ce cas oui, tu prends un FileReader et il se démerde...



:D


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°254890
BifaceMcLe​OD
The HighGlandeur
Posté le 27-11-2002 à 11:12:23  profilanswer
 

Par définition, du texte brut est... brut !Donc, aucune information annexe ne l'accompagne.
 
Maintenant, si tu cherches une astuce, tu peux essayer de compter le nombre d'octets à zéro, un ou deux dans, disons, les 4000 premiers caractères. Si leur proportion est proche de 50%, il y a de fortes chances que ton fichier soit en Unicode et qu'il ne contienne que des caractères européens.
 
Mais pour faire la différence entre un fichier Unicode rempli de caractères chinois et un fichier ASCII étendu... En tout cas, moi, je ne connais pas de méthode.

n°254917
drasche
Posté le 27-11-2002 à 11:32:15  profilanswer
 

j'en connais bien une: le REGEDIT de Windows 2000 exporte sa registry sous forme de fichier unicode.  Si tu édites ce fichier en hexadécimal, tu vas voir que la chose commence par deux bytes précis: 255, 254 (soit en hexa FF FE).  Si ton fichier commence par ces deux bytes, c'est un fichier texte unicode, sinon, c'est de l'ascii.
 
J'ai eu le problème également en VB où j'essayais de charger une ressource texte mais ça marchait pas bien parce que VB travaille uniquement en unicode.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°254919
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 27-11-2002 à 11:33:37  profilanswer
 

Pareil que Biface.
Je me suis frotté récemment à des fichiers en Japonais à encoder façon URLEncoder. Bin soit t'as une ligne au tout début de ton fichier qui te précise le charset, soit t'en sais rien. Donc bonne chance.
Par contre, je ne crois pas que FileReader marche. Comme le dit la doc, cette classe utilise le charset par défaut donc niveau portabilité du prog c'est moyen. Par contre, DataInputStream fait ça très bien, cf la javadoc de cette classe.
 
En attendant, bon courage passke c'est bien galère.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°254924
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 27-11-2002 à 11:37:42  profilanswer
 

drasche a écrit a écrit :

j'en connais bien une: le REGEDIT de Windows 2000 exporte sa registry sous forme de fichier unicode.  Si tu édites ce fichier en hexadécimal, tu vas voir que la chose commence par deux bytes précis: 255, 254 (soit en hexa FF FE).  Si ton fichier commence par ces deux bytes, c'est un fichier texte unicode, sinon, c'est de l'ascii.
 
J'ai eu le problème également en VB où j'essayais de charger une ressource texte mais ça marchait pas bien parce que VB travaille uniquement en unicode.




 
Moui euh bin perso j'peux te garantir que quand un Japonais sauvegarde un fichier texte de base sous Windows ou sous Unix, y a pas ces deux fameux caractères. Et pis toujours pour la portabilité, ça reste plus que moyen :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°254927
--greg--
Posté le 27-11-2002 à 11:39:43  profilanswer
 

Pour les readers il me semble que tu peux specifier un encodage hein...


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°254930
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 27-11-2002 à 11:42:49  profilanswer
 

--greg-- a écrit a écrit :

Pour les readers il me semble que tu peux specifier un encodage hein...




 
Bin y a bien un getEncoding() mais pas de set, ou alors j'ai raté un truc. Comme dit la doc :

Citation :

The constructors of this class assume that the default character encoding and the default byte-buffer size are appropriate. To specify these values yourself, construct an InputStreamReader on a FileInputStream.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°254947
--greg--
Posté le 27-11-2002 à 12:04:42  profilanswer
 

Ha ben voila, ce sont bien des Reader ça :D


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] Distinguer un fichier ASCII d'un fichier unicode

 

Sujets relatifs
[un peu Java] WebObjects ?mettre un fichier dans un string
Crée des liens dans une page Excel vers un fichierConvertir un fichier PDF en texte
[java - swing] JTextField & focus automatique :/récuperer l'icon d'un fichier
[java] IntelliJ Idea 3.0 et import optimisationfaire appel a une fonction qui se trouve dans un autre fichier !
inclusion d'un fichier backend[JAVA,JSP] JSP vs PHP , Pourquoi préférer JSP à PHP ?
Plus de sujets relatifs à : [JAVA] Distinguer un fichier ASCII d'un fichier unicode


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR