HTML页面采用UTF-8,并且可以使用阿拉伯字符等。但是Unipre
127以上的字符仍被编码为数字实体,如
ú。因为UTF-8是完全正确的,所以Accept-Encoding不会,没有帮助和无法加载。
您必须自己解码实体。就像是:
String depreNumericEntities(String s) { StringBuffer sb = new StringBuffer(); Matcher m = Pattern.compile("\&#(\d+);").matcher(s); while (m.find()) { int uc = Integer.parseInt(m.group(1)); m.appendReplacement(sb, ""); sb.appendCodepoint(uc); } m.appendTail(sb); return sb.toString();}顺便说一下,这些实体可以源自处理过的HTML表单,因此在Web应用程序的编辑方面也是如此。
有问题的代码之后:
我已经用(Buffered)Reader替换了文本的DataInputStream。InputStreams读取二进制数据,字节;读者文本,字符串。InputStreamReader具有InputStream和编码作为参数,并返回Reader。
try { BufferedReader input = new BufferedReader( new InputStreamReader(urlConn.getInputStream(), "UTF-8")); StringBuilder strB = new StringBuilder(); String str; while (null != (str = input.readLine())) { strB.append(str).append("rn"); } input.close();} catch (IOException e) { e.printStackTrace();}


