try:
String str=new String(str.getBytes("GBK"),"UTF-8");
文件头上:
<%@ page contentType="text/html; charset=GBK" %>

解决方案 »

  1.   

    to zxhong(红透半边天):谢谢回答,但我是用来获取XmlSocket的数据流,而不是用在jsp中。恳请再次解答,谢谢。
      

  2.   

    doc=sb.build(new BufferedReader(new FileReader("e:\\classes\\jdomtest\\sampleB.xml")));用BufferedReader
      

  3.   

    to 8slob(8slob):用fileReader来读入xml文件没有问题,我现在是要把Socket实时收到的数据流ByteArrayInputStream bais = new ByteArrayInputStream(xmlByte);中的bais,即将baissb.build,英文能正常,中文的时候jdom不能解析,但如果是读入xml文件,只要xml文件中设编码为gb2312,jdom能正常解析。我试过把数据流先存成xml文件,然后再读入,中文也能正常解析,但是,当有多个用户同时发送数据时,就会同时操作该xml文件所以,我想让bais直接被jdom解析,,,谢谢帮助。
      

  4.   

    参考:
    http://expert.csdn.net/Expert/topic/1564/1564102.xml?temp=.5570032
      

  5.   

    首先谢谢zxhong的回答,但是你的回答是基于把数据流转成String基础上的,转成str处理中文没有问题,问题是sb.build的对像必须是document或数据流。而不能sb.build(str)
      

  6.   

    很简单啊,既然String的中文没问题,那你收到的byte[]你试过转成String看看正不正常不就得了。
    比如受到得byte[] 是xmlByte.
    String s=new String(xmlByte);ByteArrayInputStream bais = new ByteArrayInputStream(xmlByte);
    org.jdom.input.SAXBuilder sb = new org.jdom.input.SAXBuilder();
    xmlDoc = sb.build(bais);不就可以了?