Я получаю ответ со страницы Википедии и вставляю ответ в html-файл. Если я открою html-файл в браузере, я не смогу получить языки, кроме английского, как есть (я использовал UTF-8). Я прикрепляю изображение языков, как в html.Как получить текст, отличный от английского, как ответ с помощью java
Я пытался через пару способов получить ответ с помощью Java, и они являются,
Way 1,
URL url = new URL ("https://en.wikipedia.org/wiki/Sachin_Tendulkar");
byte[] encodedBytes = Base64.encodeBase64("root:pass".getBytes());
//System.out.println("Host --------"+url.getHost());
String encoding = new String (encodedBytes);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Accept-Charset", "UTF-8");
connection.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");
connection.setDoInput (true);
connection.setRequestProperty ("Authorization", "Basic " + encoding);
connection.connect();
InputStream content = (InputStream)connection.getInputStream();
BufferedReader in = new BufferedReader (new InputStreamReader (content));
String line;
while ((line = in.readLine()) != null) {
String s = line.toString();
System.out.println(s);
}
Я также попытался следующий код, но это также не показывает шрифты, как в wiki,
URL url;
HttpURLConnection conn;
BufferedReader rd;
String line;
StringBuilder result = new StringBuilder();
try {
url = new URL("https://en.wikipedia.org/wiki/Sachin_Tendulkar");
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept-Charset", "UTF-8");
conn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");
rd = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
while ((line = rd.readLine()) != null) {
byte [] b = line.getBytes("UTF-8");
result.append(line);
System.out.println(result.append(line));
}
rd.close();
} catch (Exception e) {
e.printStackTrace();
}
Windows/Linux/OS X/IDE console? Правильно ли отображаются символы не-ASCII на консоли? –
Когда вы запрашиваете данные в 'UTF-8', вы также должны использовать эту кодировку. 'new InputStreamReader (content)' использует любую кодировку по умолчанию, установленную вашей системой. Вместо этого используйте 'new InputStreamReader (контент,« UTF-8 »). Когда у вас есть 'String', добавьте его как есть в свой' StringBuilder' вместо того, чтобы преобразовать его в 'byte []' array ... – Holger