Поддержка локального польского символа для возвращаемого типа API в весенней загрузке - PullRequest
0 голосов
/ 30 апреля 2019

Я использую версию Springboot = 1.5.13. ВЫПУСК.Если я возвращаю данные с использованием объекта в Response Entity первым способом, показанным ниже, он возвращает символ Ã как Ã \ u008d , и если я возвращаю то же самое путем преобразования объекта в строку с помощью ObjectMapper вторым способом ивозвращает его как объект ответа строки, а затем возвращает символ Ã как Ã правильно.Не могли бы вы, пожалуйста, почему это вызывает проблему, если я использую объект в ResponseEntity в качестве вывода.Нужно ли делать какие-либо настройки.Я также пытался с MimeType UTF-8, используя (.contentType (MediaType.APPLICATION_JSON_UTF8)), но это также не работает.Пожалуйста, помогите

1) Возврат объекта в ResponseEntity

 @GetMapping("v1/testAPI")
            @CrossOrigin(origins = "*") 
            public ResponseEntity<TESTClass> gettstDetails(@RequestParam(value = "param", required = false) String param){
    TESTClass objTESTClass= new TESTClass();
 objTESTClass.setOutputA("-BRASÃLIA BR");

 return ResponseEntity.ok(objTESTClass) ;
        }

1) Возвращение строки в ResponseEntity

     @GetMapping("v1/testAPI")
                    @CrossOrigin(origins = "*") 
                    public ResponseEntity<String> gettstDetails(@RequestParam(value = "param", required = false) String param){
            TESTClass objTESTClass= new TESTClass();
         objTESTClass.setOutputA("-BRASÃLIA BR");
     ObjectMapper objectMapper = new ObjectMapper();

return ResponseEntity.ok( objectMapper.writeValueAsString(objTESTClass));
                }

и мой TESTClass, как показано ниже

public class TESTClass{
    @JsonProperty("outputA")
    private String outputA;
    @JsonProperty("outputB")
    private String outputB;

    public String getOutputA() {
        return outputA;
    }

    public void setOutputA(String outputA) {
        this.outputA= outputA;
    }

    public String getOutputB() {
        return outputb;
    }

    public void setOutputB(String outputb) {
        this.outputB= outputB;
    }
}

1 Ответ

0 голосов
/ 03 мая 2019

Проблема решена с использованием приведенного ниже кода с последующей веткой Кодировка символов рестайплинга Java Spring

RestTemplate objRestTemplate = new RestTemplate ();

objRestTemplate.getMessageConverters()
                .add(0, new StringHttpMessageConverter(Charset.forName(UaofConstants.UTF_8)));
...