當我通過HTTP標頭值發送像â
這樣的特殊字符時,我得到一個不同的Unicode字符request().getHeader()
。PlayFramework處理HTTP標題中的特殊字符
我知道不建議通過HTTP頭髮送特殊字符,但這是我的一個要求,首先我認爲這是因爲JVM編碼未設置爲UTF-8。但即使在設置後,我也遇到同樣的問題。
我見過有人問過類似的問題:
Play Framework Unicode symbols in HTTP Header
但還沒有得到答覆。
當我通過HTTP標頭值發送像â
這樣的特殊字符時,我得到一個不同的Unicode字符request().getHeader()
。PlayFramework處理HTTP標題中的特殊字符
我知道不建議通過HTTP頭髮送特殊字符,但這是我的一個要求,首先我認爲這是因爲JVM編碼未設置爲UTF-8。但即使在設置後,我也遇到同樣的問題。
我見過有人問過類似的問題:
Play Framework Unicode symbols in HTTP Header
但還沒有得到答覆。
這不是關於Play或Java,而是關於HTTP標準。您需要對這些字符進行編碼,但在HTTP標頭中發送非ASCII字符沒有保證。
How to send non-English unicode string using HTTP header?
Illegal characters in HTTP headers
Sending non-ASCII text in Http POST header
即使RFC5987:
handling filename* parameters with spaces via RFC 5987 results in '+' in filenames
是的,我UND遵守HTTP標準。但正如我發現Jetty服務器尊重file.encoding設置,即使HTTP頭。但Netty服務器嚴格遵守HTTP標準。我認爲唯一的方法就是用base64對它進行編碼。 – sasankad