可能服务器传过来的数据不是utf8的

解决方案 »

  1.   

    服务器中返回来的数据头信息是:200Server: Apache-Coyote/1.1 Content-Type: application/vnd.newbay.sng.pri+xml;charset=UTF-8 Content-Language: zh-CN Content-Length: 746 Date: Tue, 15 Nov 2011 06:07:08 GMT 应该是UTF-8的,问题是用eclipse中的tomcat插件打开TOMCAT时正常。用手动打开tomcat时出现乱码。
      

  2.   

    我接收的时候代码如下:
    feedrequest = sng.httpGet(fheaders, Feedurl, fpara, null);
    HttpResponse frep = sng.execute(feedrequest);
    feedentity = frep.getEntity();
    InputStream fstream = feedentity.getContent();
    BufferedReader fbf = new BufferedReader(new InputStreamReader(fstream));
    String fline = fbf.readLine();然后从servlet传递fline参数到前台时用的如下:
    System.out.println("返回feed值:"+new String(fline.getBytes("GBK"),"UTF-8"));
    response.getWriter().print(new String(fline.getBytes("GBK"),"UTF-8"));
    这样能解析大部分中文,但是部分中文还是乱码
      

  3.   

    不知道你配置了tomcat6.0的server.xml 文件没C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf之前你最好 备份一下
    用记事本 打开 server.xml  你用8080端口找到 相应的  改成 下面的
       
     <Connector port="8080" protocol="HTTP/1.1" 
                   maxThreads="150" connectionTimeout="20000" 
                   redirectPort="8443" 
           URIEncoding="utf-8"/>
      

  4.   

    在经过服务器时出现的乱码,那肯定是服务器的编码方式不是utf-8  看到你 的那么信息是utf-8 可能需要重启一下服务器把。。?
      

  5.   

    大家帮忙看一下在如下代码
    feedrequest = sng.httpGet(fheaders, Feedurl, fpara, null);
    HttpResponse frep = sng.execute(feedrequest);//自己写的类,执行httpClient的execute
    feedentity = frep.getEntity();
    InputStream fstream = feedentity.getContent();
    BufferedReader fbf = new BufferedReader(new InputStreamReader(fstream));
    String fline = fbf.readLine();
    POST后,获得从服务器的返回值时,哪块代码被TOMCAT默认字符编码设置了?
    服务器获得的是UTF-8的数据格式,没问题,就到servlet后出现乱码了
      

  6.   

    这个方法已经用过了。不行。
    这个方法应该是servlet解析前台传过来的变量时用的。我的问题是从servlet传递数据给前台时出现的。
      

  7.   

    InputStream fstream = feedentity.getContent();
    BufferedReader fbf = new BufferedReader(new InputStreamReader(fstream,"GBK")); 
      

  8.   

    问题解决了。在接收数据的时候BufferedReader fbf = new BufferedReader(new InputStreamReader(fstream))这个过程,字符自动编码为系统默认编码格式,应该是GBK,然后我把代码改为BufferedReader fbf = new BufferedReader(new InputStreamReader(fstream,"UTF-8"));之后问题解决了。感谢大家了~~
      

  9.   

    feedentity这个类在那个包里的?