Подтвердить что ты не робот

Как заставить 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
4b9b3361

Ответ 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"));

Ответ 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);
}