小弟在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??
小弟不知怎么解决这个乱码 麻烦大哥大姐们指教一二!!!
BigDecimal relation=new BigDecimal(5);
Object[] obj=client.invoke("方法名", new Object[]{"1","女"});
System.out.println("----"+obj[0]);用web service 调的 就是当“女" 传过去的时候出现了乱码 ,如果把"女" 换成字母之类的就OK??
小弟不知怎么解决这个乱码 麻烦大哥大姐们指教一二!!!
解决:这里只说明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的路上越走越好。
一步一步的跟输出,看看在什么地方开始乱码的,然后确定是在程序里传值时发生了乱码,还是再与数据库进行数据交互后发生了乱码,然后再确定解决方案。
解决乱码要耐性,要不然越忙越乱,各种乱码都见识了,你就有经验调各种乱码,加油。
good luck!
也可以写个过来器,
还有可能是你数据库的编码的问题
改下数据库的编码
request.setrequest.setCharacterEncoding("UTF-8");就可以了......
jdbc:mysql://localhost:3306/board?useUnicode=true&characterEncoding=utf-8注意“?useUnicode=true&characterEncoding=utf-8”这里,我设定的是utf-8。当然,我的数据库也是utf-8的