2015-12-02 94 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