Как заставить PrintWriter писать UTF-8? Как сделать PrintWriter для записи UTF-8? pstream = new PrintWriter(csocket.getOutputStream(), true); String res = "some string"; pstream.println(res); // here I want to output string as UTF-8 Ответ 1 Используйте OutputStreamWriter: pstream = new PrintWriter(new OutputStreamWriter( csocket.getOutputStream(), StandardCharsets.UTF_8), true) Ответ 2 Не пользователь PrintWriter. Если вам нужна кодировка UTF-8, просто напишите прямо в OutputStream. csocket.getOutputStream().write(res.getBytes("UTF-8")); Ответ 3 Посмотрите обсуждение Java: разница между PrintStream и PrintWriter. Быть быстрым: вы можете использовать параметр -Dfile.encoding = utf8 JVM или метод, предложенный в обсуждении (см. второй ответ). Ответ 4 вы можете писать только в файл с любой кодировкой, иначе используемая кодировка платформы по умолчанию - doc Ответ 5 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); }
Ответ 1 Используйте OutputStreamWriter: pstream = new PrintWriter(new OutputStreamWriter( csocket.getOutputStream(), StandardCharsets.UTF_8), true)
Ответ 2 Не пользователь PrintWriter. Если вам нужна кодировка UTF-8, просто напишите прямо в OutputStream. csocket.getOutputStream().write(res.getBytes("UTF-8"));
Ответ 3 Посмотрите обсуждение Java: разница между PrintStream и PrintWriter. Быть быстрым: вы можете использовать параметр -Dfile.encoding = utf8 JVM или метод, предложенный в обсуждении (см. второй ответ).
Ответ 4 вы можете писать только в файл с любой кодировкой, иначе используемая кодировка платформы по умолчанию - doc
Ответ 5 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); }