2017-02-22 2 views
1

Wenn ich Sonderzeichen wie â über HTTP-Header-Wert senden, bekomme ich ein anderes Unicode-Zeichen request().getHeader().PlayFramework Umgang mit Sonderzeichen in HTTP-Header

Ich weiß, dass es nicht empfohlen wird, Sonderzeichen über HTTP-Header zu senden, aber das ist eine Voraussetzung für mich und zuerst dachte ich, es liegt daran, dass die JVM-Codierung nicht auf UTF-8 eingestellt ist. Aber selbst nach dem Einstellen bekomme ich das gleiche Problem.

Ich habe gesehen, wie jemand fragte eine ähnliche Frage:

Play Framework Unicode symbols in HTTP Header

aber keine Antwort bekam.

Antwort

0

Es geht nicht um Play oder Java, es geht um HTTP-Standard. Sie müssen diese Zeichen codieren, es gibt keine garantierte Möglichkeit, Nicht-ASCII-Zeichen im HTTP-Header zu senden.

How to send non-English unicode string using HTTP header?

Illegal characters in HTTP headers

Sending non-ASCII text in Http POST header

What character encoding should I use for a HTTP header?

Auch für RFC5987:

handling filename* parameters with spaces via RFC 5987 results in '+' in filenames

+0

Ja i und den HTTP-Standard kennen. Aber wie ich herausgefunden habe, respektiert Jetty-Server die Einstellung file.encoding, sogar für die HTTP-Header. Aber netty Server halten sich strikt an den HTTP-Standard. Ich denke, dass ich es mit base64 verschlüsseln kann. – sasankad

Verwandte Themen