2017-02-22 14 views
1

Когда я отправляю специальные символы, такие как â через значение HTTP-заголовка, я получаю другой символ юникода request().getHeader().Обработка текстовых символов в HTTP-заголовке

Я знаю, что не рекомендуется отправлять специальные символы через HTTP-заголовки, но это требование для меня, и сначала я думал, что это из-за того, что JVM-кодировка не установлена ​​в UTF-8. Но даже после установки я получаю ту же проблему.

Я видел, кто-то задал подобный вопрос:

Play Framework Unicode symbols in HTTP Header

Но не получил ответа.

ответ

0

Речь идет не о Play или Java, а о стандарте HTTP. Вам нужно закодировать эти символы, нет надежного способа отправить символ не ASCII в HTTP-заголовок.

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?

Даже для RFC5987:

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

+0

Да я унд выдержать стандарт HTTP. Но поскольку я узнал, что сервер Jetty уважает параметр file.encoding, даже для заголовков HTTP. Но Netty сервер строго придерживается стандарта HTTP. Я думаю, что только путь для меня - это кодировать его с помощью base64. – sasankad

Смежные вопросы