Question

J'ai analysé un texte (code CAL) avec BufferedReader et BufferedWriter en Java, malheureusement, des lignes qui ont été écrites et écrites avec outStream.write (line); ont changé, regardez les captures d'écran:

http://uploadz.eu/images/4qz8mtkm2d9zx3x5ms3n.png h ** p: //uploadz.eu/images/c03hgkrgrmit2ij2mug.png

comme vous le voyez, un caractère spécial a changé les lignes bien que je ne voulais PAS les changer.

pour autant que je sache, Bufferedwriter / Reader devrait fonctionner en mode unicode par défaut.

Était-ce utile?

La solution

Les codes BufferedWriter et BufferedReader sont codés en agnostic. Ils ne traitent jamais les codages réels, car ils ne font que mettre en mémoire tampon les lecteurs et les rédacteurs existants.

Maintenant, FileWriter et FileReader utilisent le codage système par défaut (urgh). Pour résoudre ce problème, vous devez généralement utiliser une paire InputStream / InputStreamReader ou OutputStream / OutputStreamWriter (éventuellement encapsulée). BufferedReader / BufferedWriter ) et spécifiez explicitement le codage.

Vous n'avez pas dit ce que vous lisiez réellement - s'agit-il d'un fichier? Connaissez-vous l'encodage du fichier?

Autres conseils

Vous devez connaître le codage si vous envisagez de traiter le contenu comme du texte (String) ou, lorsque la copie est votre objectif, ou traiter le contenu comme un tableau d'octets.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top