[英]InputStream special character UTF-8
为什么此输入流未返回正确的字符? 即使使用UTF-8读取后,Código仍会变成Cédigo
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.setRequestProperty("Accept-Charset", "UTF-8");
// Starts the query
conn.connect();
InputStream stream = conn.getInputStream();
byte[] buffer = new byte[1024];
int bytesRead = stream.read(buffer);
String page = new String(buffer, 0, bytesRead, "UTF-8");
//Page is returning, C�digo instead of Código
尝试这个,
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), StandardCharsets.UTF_8));
解决方案是:
//set the conn to this
conn.setRequestProperty("Accept-Charset", "ISO-8859-1");
//use Apache Commons IO
data = IOUtils.toString(stream, "ISO-8859-1");
并在.php页面中输入:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.