В юнит-тестах на java+spring передаю в метод строку с русскими буквами. Внутри метода в параметр приходит уже не то, что записал, например статус заказа - Оплачен, а приходит текст на птичьем языке.
String response = sendGet(
new String(serverAddress + "/salesOrder?id=1&status=2. Оплачен");
Сам метод
private String sendGet(String url) {
logger.log(WARN, "prepare sending GET..");
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/xml");
logger.log(WARN, url);
ResponseEntity responseEntity = restTemplate.exchange(
url, HttpMethod.GET, new HttpEntity<>(headers), String.class);
return (String) responseEntity.getBody();
}
Соответственно передаю
, а внутри метода sendGet и на сервер приходит строка что-то вроде
Чтобы строковые литералы нормально отображались в выводе, нужно указать компилятору кодировку исходного кода. В maven-проекте это можно сделать добавив в pom.xml свойство project.build.sourceEncoding:
<project ...>
...
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
...
</properties>
..
</project>
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости