小弟在a工程里面写了个插入方法 就是向数据库插入一条数据 然后再b工程里面调用 Client client=new Client(new URL("http://localhost:8080/addressBook/services/test81?wsdl"));
BigDecimal relation=new BigDecimal(5);
Object[] obj=client.invoke("方法名", new Object[]{"1","女"});
System.out.println("----"+obj[0]);用web service 调的   就是当“女" 传过去的时候出现了乱码 ,如果把"女" 换成字母之类的就OK??
小弟不知怎么解决这个乱码 麻烦大哥大姐们指教一二!!!

解决方案 »

  1.   

    第一:可能是数据库的编码格式设置问题。
         解决:这里只说明MySql,其它数据库编码更改方式自己在网上查一下。在MySql的根目录下,打开my.ini,查找"default-character-set"字符串,将值修改为gb2312:"default-character-set=gb2312"。注意有两处,所以改完第一处后,再往下查找一次。
    第二:项目编码问题。
         解决:将web项目所有使用编码的地方都改为UTF-8
              更保险、万无一失的做法是为项目培训一个Filter,用来过滤编码。
               1,写一个Filter:
               
               public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {
    request.setCharacterEncoding("UTF-8");
    chain.doFilter(request, response);
       }
              
              2,在web.xml配置Filter
              
               <filter>
    <filter-name>encoding</filter-name>
    <filter-class>
    wen.filter.EncodingFilter
    </filter-class>
       </filter>
       <filter-mapping>
    <filter-name>encoding</filter-name>
    <url-pattern>/*</url-pattern>
       </filter-mapping>
              
              这样,就把所有请求所包含的数据在交给容器处理之前,将数据的编码格式通过"request.setCharacterEncoding("UTF-8");"这句代码变成了"UTF-8"了(当然,这里写成其它支持中文的编码格式也是可以的)。第三:祝您顺利解决问题。并在J2EE的路上越走越好。
      

  2.   

      我首先写了个过滤器 而且在 a项目中 还用 new string(sex.getBytes("ISO-8859-1","GBK");的方式进行了转换 但是还是不行!。。  现在真没辙了.....  请大家帮帮忙吧!! 还有我用的是oracle11G的数据库  怎么修改编码 不知道  上网查了 说好像会出问题....  
      

  3.   

    看看你的Oracle是什么编码,Oracle默认的编码是UTF8的,要注意一下!
    一步一步的跟输出,看看在什么地方开始乱码的,然后确定是在程序里传值时发生了乱码,还是再与数据库进行数据交互后发生了乱码,然后再确定解决方案。
    解决乱码要耐性,要不然越忙越乱,各种乱码都见识了,你就有经验调各种乱码,加油。
    good luck!
      

  4.   

      request.setCharacterEncoding("UTF-8");
    也可以写个过来器,
    还有可能是你数据库的编码的问题
    改下数据库的编码
      

  5.   

    要写个过滤器啊, 要是简单的一个表的增删改查,结合什么做的啊,要是servlet 就在dopost里写上
    request.setrequest.setCharacterEncoding("UTF-8");就可以了......
      

  6.   

    服务器的class文件的编码。搞清楚了是什么
      

  7.   

      我是用web service 调用的  在那边获取的时候出现了乱码.. ..  和数据库没有关系!  大虾们 帮帮小弟咯!
      

  8.   

    过滤器啥的我统一设置成GBK,这个最爽了!哈哈
      

  9.   

    你在连接数据库的时候设置一下连接时使用的编码··例如,我连接mysql数据库时的驱动是这样写的:
    jdbc:mysql://localhost:3306/board?useUnicode=true&characterEncoding=utf-8注意“?useUnicode=true&characterEncoding=utf-8”这里,我设定的是utf-8。当然,我的数据库也是utf-8的