Comment faire le PrintWriter
pour écrire UTF-8?
pstream = new PrintWriter(csocket.getOutputStream(), true);
String res = "some string";
pstream.println(res); // here I want to output string as UTF-8
Utilisez un OutputStreamWriter
:
pstream = new PrintWriter(new OutputStreamWriter(
csocket.getOutputStream(), StandardCharsets.UTF_8), true)
Regardez Java: différence entre PrintStream et PrintWriter discussion.
Pour être rapide: vous pouvez utiliser -Dfile.encoding = utf8 paramètre ou méthode JVM suggéré dans la discussion (voir la deuxième réponse).
N'utilisez pas PrintWriter. Si vous avez besoin d'un encodage UTF-8, écrivez simplement directement dans OutputStream.
csocket.getOutputStream().write(res.getBytes("UTF-8"));
PrintWriter out1 = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KitKat) {
out1 = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), StandardCharsets.UTF_8),true);
} else {
out1 = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF8"), true);
}
vous pouvez uniquement écrire dans un fichier avec n'importe quel jeu de caractères, sinon le jeu de caractères par défaut de la plate-forme est utilisé voir doc