Я пытался распечатать текст HTML для https://top.baidu.com и https://www.qq.com, которые оба используют кодировку символов GB2312. Он выводится на консоль нормально, за исключением китайских символов, которые выглядят как нечитаемый текст, например �� 㿴 ���ģ�ȫ�й�� ...
Однако китайские символы появляются просто хорошо, когда я меняю адрес на https://www.sina.com.cn или https://world.taobao.com, оба из которых используют UTF-8.
Кроме приятного запроса Baidu и QQ о переключении к UTF-8, что я могу с этим поделать? Вот мой код.
try {
String address1 = "https://top.baidu.com"; //unreadable
String address2 = "https://www.qq.com"; //also unreadable
String address3 = "https://www.sina.com.cn"; //readable
String address4 = "https://world.taobao.com"; //readable, too
URL url = new URL(address1);
StringBuilder htmlText = new StringBuilder();
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
InputStream stream = connection.getInputStream();
InputStreamReader reader = new InputStreamReader(stream);
int data = reader.read();
while (data != -1) {
char current = (char) data;
htmlText.append(current);
data = reader.read();
}
System.out.println(htmlText);
} catch (Exception e) {
e.printStackTrace();
}