Я пытаюсь получить данные с веб-сайта в кодировке UTF-8 и вставить их в базу данных (MYSQL). База данных также закодирована в UTF-8.
Это метод, который я использую для загрузки данных с определенного сайта.
public String download(String url) throws java.io.IOException {
java.io.InputStream s = null;
java.io.InputStreamReader r = null;
StringBuilder content = new StringBuilder();
try {
s = (java.io.InputStream)new URL(url).getContent();
r = new java.io.InputStreamReader(s, "UTF-8");
char[] buffer = new char[4*1024];
int n = 0;
while (n >= 0) {
n = r.read(buffer, 0, buffer.length);
if (n > 0) {
content.append(buffer, 0, n);
}
}
}
finally {
if (r != null) r.close();
if (s != null) s.close();
}
return content.toString();
}
Если для кодировки установлено значение 'UTF-8' (r = new java.io.InputStreamReader (s, "UTF-8");) данные, вставленные в базу данных, выглядят нормально, но когда я пытаюсь их отобразить, Я получаю что-то вроде этого: Кот-д'Ивуар, а не Кот-д'Ивуар.
Все мои сайты кодируются в UTF-8.
Пожалуйста, помогите.
Если для кодировки установлено значение 'windows-1252' (r = new java.io.InputStreamReader (s, "windows-1252");) все работает нормально, и я получаю Кот-д'Ивуар на своем веб-сайте (), но в Java этот заголовок выглядит как 'C? ´te d'Ivoire', что ломает другие вещи, такие как, например, ссылки. Что это значит ?