java - utf8 - ¿Cómo hacer que el PrintWriter escriba UTF-8?
fileoutputstream utf8 (5)
Mira a Java: Diferencia entre PrintStream y la discusión de PrintWriter .
Para ser rápido: puede usar el parámetro o método JVM -Dfile.encoding = utf8 sugerido en la discusión (vea la segunda respuesta).
¿Cómo hacer que el PrintWriter
escriba UTF-8?
pstream = new PrintWriter(csocket.getOutputStream(), true);
String res = "some string";
pstream.println(res); // here I want to output string as UTF-8
No utilice PrintWriter. Si necesita codificación UTF-8, simplemente escriba directamente en OutputStream.
csocket.getOutputStream().write(res.getBytes("UTF-8"));
Utilice un OutputStreamWriter
:
pstream = new PrintWriter(new OutputStreamWriter(
csocket.getOutputStream(), StandardCharsets.UTF_8), true)
solo puede escribir en el archivo con cualquier conjunto de caracteres; de lo contrario, el conjunto de caracteres predeterminado de la plataforma se utiliza en doc
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);
}