Ich habe einen einfachen HTTP-Server in Java geschrieben. Ich habe ein Problem mit der Rückgabe von Daten an den Browser.Nicht-englischer Buchstabe in BufferedWriter
schreiben Dieser eine zurück Inhalt:
this.writer = new BufferedWriter(new OutputStreamWriter(this.socket.getOutputStream(), Charset.forName("UTF-8").newEncoder()));
...
writer.write(this.getResponseLine() + "\n");
writer.write("Content-Type: " + this.contentType + "; charset=utf-8\n");
writer.write("Content-Length: " + this.body.length() + "\n");
writer.write("\r\n");
writer.write(new String(this.body.getBytes(), "UTF-8"));
writer.flush();
writer.flush();
Methode this.body.getBytes() returns "Witaj świecie", aber in der Brower ist nur "Witaj Święci" (der letzte Buchstabe fehlt).
Wo ist das Problem?
Es hängt wahrscheinlich mit der Länge von 'ś' zusammen. Ich vermute, wenn Sie zwei "¶" in der Zeichenfolge hatten, würden Sie stattdessen zwei Zeichen verpassen? –