Я получаю код испанского сайта через объект HttpConnection, используя запрос GET.Когда я печатаю вывод через консоль (код веб-сайта), испанские символы отсутствуют.Вместо этого есть некоторые «странные» персонажи.
Предполагается, что кодировка сайта - "UTF-8" (), но я не знаю, как она работает с испанскими символами (á, ñ и т. Д.)
Я пробовал много вещей, таких как определение свойства charset в UTF-8, в методе setRequestProperty, построение строки из массива char, построение строки из байтового массива с использованием определенной кодировки UTF-8, потому что я где-то читал, чтокласс Java String строит строки в UTF-16 по умолчанию, и, нет.Это все еще дает мне все эти странные символы.
Я также пробовал те же вещи, используя кодировку ISO-8859-1, с тем же плохим результатом, а также без какой-либо спецификации кодирования.
OkЯ знаю, что эти символы следуют шаблону, и я мог бы создать класс для их «перевода», но я уверен, что до этого есть гораздо лучшие варианты.
String myMethod() {
con.setRequestMethod("GET");
con.setRequestProperty("User-Agent", "Mozilla/5.0");
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
con.setUseCaches(false);
con.setDoInput(true);
reader = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
return reader.lines().collect(Collectors.joining("\n"));
}
Это одинпример того, что происходит.
Предложение, которое написано на сайте (и я хочу получить):
"Equipo de protección otoño de toda la estaciòn"
предложение, которое я на самом деле получаю из моего вывода:
"Equipo de protección otoño de toda la estaciòn"