关于使用CXF出现编码 GBK 的不可映射字符问题解决
一种情况是服务端与客户端调用的编码问题,解决方法:
1、将服务端web项目的默认编码设置成UTF-8
右键项目名称properties>resource>text file encoding>other>UTF-8
2、在web.xml中进行编码的过滤,这个各有不同,范例:
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3、在客户端项目中
右键项目名称properties>resource>text file encoding>other>UTF-8
另一种情况是使用cxf作为客户端调用webservice服务出现不可映射字符问题,这个是cxf提供的jar包中的问题,现提供已修改封装好的jar包直接替换原有的cxf-rt-frontend-simple-3.2.0.jar包即可。