2016-05-05 15 views
2

ich eine einfache RestController haben, die einen Unicode-String zurückgibt: "????"Frühling @RestController kann nicht Unicode zurückgeben

@RestController 
@RequestMapping(path = "/") 
public class FooController { 
    @RequestMapping(method = RequestMethod.GET) 
    public String test() throws Exception { 
     return "ỗ ẵ ẫ ậ ự"; 
    } 
} 

Aber laufen, wenn es zeigt nur , Wie kann ich dieses Problem zu beheben, habe ich bereits diese Konfiguration in web.xml hat:

<filter> 
     <filter-name>characterEncodingFilter</filter-name> 
     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
     <init-param> 
      <param-name>encoding</param-name> 
      <param-value>UTF-8</param-value> 
     </init-param> 
     <init-param> 
      <param-name>forceEncoding</param-name> 
      <param-value>true</param-value> 
     </init-param> 
    </filter> 
    <filter-mapping> 
     <filter-name>characterEncodingFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

Und wenn ich mit einfachen HttpServlet zu testen, kann es über Unicode-String zurück.

+1

Was 'ist Inhalt-Baumuster zur von Ihre Antwortkopfzeile? – Blank

+0

@Reno Ich habe nicht festgelegt. – yelliver

Antwort

0

Bei anderen begegnen die gleichen ...
hinzufügen Erzeugt Annotation mit charset = utf-8
Dann Antwort Objekt verwenden wie:

@RestController 
@RequestMapping(path = "/") 
@Produces(MediaType.TEXT_PLAIN + ";charset=utf-8") 
public class FooController { 
    @RequestMapping(method = RequestMethod.GET) 
    public Response test() throws Exception { 
      return Response.status(HttpStatus.OK).entity("ỗ ẵ ẫ ậ ự").build(); 
    } 
}