UTF-8 Плохой запрос - PullRequest
       63

UTF-8 Плохой запрос

1 голос
/ 10 марта 2020

У меня есть строка с символом "Á" (испанский sh язык), и у меня возникли некоторые проблемы с запросом к API.

Таким образом, я получаю 400 ERROR BAD REQUEST

String address = "Ángel Marsa I Becá è";
String encoded = new String(address.getBytes("UTF-8"));
System.out.println(encoded);//�ngel Marsa I Becá è

Используя другой способ кодирования, с ISO-8859-1, а затем с UTF-8, я не получаю ОШИБКУ BAD REQUEST 400.

byte ptext[] = address.getBytes("ISO-8859-1"); 
String value = new String(ptext, "UTF-8");
System.out.println(value);//?ngel Marsa I Bec? ?

Правильно ли закодирован UTF8? ?

Какой самый лучший способ кодирования в UTF-8, особенно строки с ударением или с "-".

Спасибо

Ответы [ 2 ]

1 голос
/ 10 марта 2020

Вы можете использовать java. net .URLEncoder для передачи строк, которые иначе не допустимы в URL.

String s = "Ángel Marsa I Becá è";
String e = URLEncoder.encode(s, "UTF-8");
System.out.println(e);

Это будет выглядеть как %C3%81ngel+Marsa+I+Bec%C3%A1+%C3%A8.

Получив его по сети, вы всегда можете восстановить исходный текст с помощью UrlDecoder.decode .

0 голосов
/ 11 марта 2020

Мне не хватало параметра charset = utf-8 для Content-Type.

...