Я хочу загрузить и сохранить файл xml с помощью openConnection.openConnection получить xml с UTF-8
Проблема в том, что когда я сохраняю файл, есть неправильная кодировка.
Мой код:
URL url = new URL(partnersEntity.getUrl());
URLConnection urlConnection = url.openConnection();
urlConnection.setRequestProperty("Content-Length", "500000");
urlConnection.setRequestProperty("Accept-Charset", "UTF-8");
urlConnection.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
Calendar calendar = Calendar.getInstance();
Date now = calendar.getTime();
Timestamp currentTimestamp = new Timestamp(now.getTime());
File file = new File(myFile);
FileWriter writer = new FileWriter(file);
IOUtils.copy(urlConnection.getInputStream(), writer);
writer.close();
После этого в моем файле я вижу знаки, как "??" в специальных чартерах.
Что я должен изменить?
Поскольку он * получает * данные как двоичный поток и просто хочет записать в файл, нет никакого смысла вовлекать 'Writer' или кодировку вообще: он должен просто написать его как поток (так как @jtahlborns отвечает показывает). –
Да, вы правы. Гораздо более элегантно оставить его в виде байтового потока. Хотел бы я подумать об этом ... Однако, если вы хотите обработать символы (и есть некоторые случаи, когда вы хотите это сделать), урок здесь должен быть явным в кодировке символов и никогда не использовать FileWriter. – AgilePro