cs_amel2006
Messages postés83Date d'inscriptionsamedi 21 janvier 2006StatutMembreDernière intervention 9 décembre 2006
-
29 mars 2006 à 15:09
tucobouch
Messages postés194Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention 1 mai 2009
-
29 mars 2006 à 22:13
bonjour;
comment récuperer unflux d'entrée en String non pas en caractère
merci
tucobouch
Messages postés194Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention 1 mai 200950 29 mars 2006 à 22:13
Je pense que ton probleme de blanc vient de l'unicode... en effet, en ASCII (format de representation des caracteres) un caractere prends un octet et en UNICODE (autre format, plus international : gere les accents, caracteres chinois je crois etc) un caractere prends 2 octets.
in.read() meme s'il renvoi un int (4 octets) lit un octet, donc en fait dans ton code, tu lit a chaque fois une moitié de caractere unicode d'où le blanc a chaque fois. Je sais pas s'il y a une methode plus propre que celle que je vais te proposer mais bon, faute de mieux :
c=0;
while (c != -1)
{
//lecture 1ere partie du caracter unicode
c = in.read()<<8;
//lecture de la 2eme partie
c=c | (in.read());
//ton c contient maintenant la valeur du caractere unicode
build.append((char) c);
}
cs_amel2006
Messages postés83Date d'inscriptionsamedi 21 janvier 2006StatutMembreDernière intervention 9 décembre 20061 29 mars 2006 à 21:33
bonjour;
je fait dans mon programme une connexion avec un moteur de recherche et il me rend un fichier texte tel que chaque chaque lettre est séparé par un blanc
voici le code de récupération du flux d'entrée
Code:
,
----
InputStream in = uc.getInputStream();
int c = in.read();
StringBuffer build = new StringBuffer();
while (c != -1)
{
build.append((char) c);
c = in.read();
}
flux.writeChars( line);
et voici une portion de contenue de fichier retourner
Code:
,
----
< h t m l d i r " l t r " > < h e a d > < m e t a h t t p - e q u i v " c o n t e n t - t y p e " c o n t e n t = " t e x t / h t m l ; c h a r s e t = u t f - 8 " / > < m e t a n a m e = " m s . l o c a l e " c o n t e n t = " e n - U S " >