Кодировка @GetMapping UTF-8 не работает должным образом - хорватский - PullRequest
0 голосов
/ 07 января 2020

У меня проблемы с получением ответа в правильной кодировке, и я перепробовал все, что нашел в net.

MySQL База данных находится в сопоставлении utf8mb4_croatian_ci.

Пример записей базы данных:

Abadžić Stanko
Ač Nataša
Adamović Dubravko
Adrić Marija
Here is my controller:

Это мой контроллер покоя:

@RestController
public class AutorController {

    @Autowired
    private AutorService autorService;

    @GetMapping(value = "/autori",  produces = "application/json;charset=UTF-8")
    public List<Autor> getAllAutors() {
        return autorService.getAllAutors();
    }
}

application.properties, где я пытался настроить кодировку для tomcat:

server.tomcat.uri-encoding = UTF-8
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true 
spring.http.encoding.force=true
spring.datasource.sql-script-encoding=UTF-8
spring.messages.encoding=UTF-8
spring.datasource.tomcat.connection-properties=useUnicode=true;characterEncoding=utf-8;

This это ответ, который я получаю:

    "id": 2,
        "imeAutora": "Abadžić Stanko"
    },
    {
        "id": 3,
        "imeAutora": "A� Nataša"
    },
    {
        "id": 4,
        "imeAutora": "Adamović Dubravko"
    },
    {
        "id": 5,
        "imeAutora": "Adrić Marija"
    }

PS Также, когда я меняю кодировку в контроллере на ISO-8859-2 (также должен поддерживать хорватский язык):

@GetMapping(value = "/autori",  produces = "application/json;charset=ISO-8859-2")

мой ответ похож на :

 "id": 2,
        "imeAutora": "AbadŞiÄ‥ Stanko"

, что означает, что установка charset в @GetMapping что-то делает, но делает это неправильно

Если у вас есть идеи, пожалуйста, дайте мне знать.

...