2015-12-02 91 views
0

我正在其標頭是一個響應:響應編碼

內容長度:18588

內容類型:應用/ JSON;字符集= UTF-8

日期:星期三, 2015年12月2日12時58分51秒GMT

服務器:Apache-狼/ 1.1

有在將「application/json」編碼的字符串發送到視圖之前將其改爲「text/plain; charset = ISO-8859-1」編碼的可能性?我正在使用Spring MVC。 任何幫助將不勝感激。

+0

ISO在2015?爲什麼不使用UTF-8? – fge

+0

不,我希望控制器在應用程序/ json中返回它,但在將它發送到視圖之前,我希望手動將響應的內容類型更改爲「text/plain」。 api的響應是application/json,這是正確的,但由於某些要求,我需要手動將響應更改爲text/plain。 –

回答

0

您的要求就是發送響應返回給客戶端之前,設置所需的內容類型,所以使用httpServletResponse.setContentType("text/plain;charset=ISO-8859-1");

這是從方法javax.servlet.ServletResponse(setContentType(java.lang.String type)

下面摘自文檔。

設置響應的內容類型被髮送到客戶端,如果 響應尚未提交。給定的內容類型可能包括 字符編碼規範,例如, text/html; charset = UTF-8。如果在調用getWriter 之前調用此方法,則只會根據給定的內容類型設置響應的字符編碼 。

此方法可能會反覆調用以更改內容類型和 字符編碼。如果在提交 響應後調用此方法,則此方法無效。如果在調用getWriter之後或在提交了 響應之後調用響應,則它不會設置響應的字符 編碼。

如果 協議爲此提供了一種方法,則容器必須將用於servlet響應的寫入器的內容類型和字符 傳送給客戶端。在HTTP的情況下,使用 Content-Type標頭。

請注意:您應該在將響應提交給客戶端之前使用此方法。請參閱上面的摘錄 - 「如果在提交響應後調用此方法,則此方法無效,如果在調用getWriter之後或在提交響應之後調用該響應的字符編碼,則不會設置響應的字符編碼。


在一個側面說明:

  • 爲了使您的應用更可擴展的可能性,即支持在未來更多的語言,使用的編碼方案爲「UTF-8」。
  • 請仔細閱讀我的this answer以深入瞭解WHY的細節?
+0

你是否擅長這?如有任何問題,請告知我。 – hagrawal