-- 作者:discrete
-- 发布时间:5/29/2004 6:05:00 PM
-- 遇到JTidy的中文处理问题,在这里像大家请教
由于是别人写了一部分的代码,似乎没有用到什么jTidy的配置文件 处理页面的函数中是以下三句代码: //确认在这里的ss中的中文能够打印显示 String ss = HTMLHelper.filtHTMLChar(IOUtil.input2String(in)); //这一步见下面的代码@2 in = new BufferedInputStream(IOUtil.string2Input(ss)); //在这步得到document return tidy.parseDOM(in, null); 代码@2 /** * 从String中返回一个InputStream, 用于读取该String * @param s * @return */ public static InputStream string2Input(String s) { byte[] b =s.getBytes(); ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(b); //这步我将byteArrayInputStream中的字节读出来转化为string之后打印仍然能够正确显示中文 return byteArrayInputStream; } 代码@3 //我试图用这个函数将得到的XML转换为TXT private void saveXMLtoTXT(Document currentPage, BufferedWriter writer) throws IOException { Element root = currentPage.getDocumentElement(); //得到所有含有文本的节点 ArrayList nodeList = LocateAction.getAllTextNode(root); for (int i = 0; i < nodeList.size(); i++) { Node node = (Node) nodeList.get(i); String text = node.getNodeValue(); //这步打印出来就是乱码了~~~~ System.out.println("text = " + text); writer.write(text); writer.write("\r\n"); } writer.close(); }
|