在action里,我String tmp = "<?xml version='1.0' encoding='UTF-8'?><chart "caption='标题'></chart>" ;
然后我在浏览器的地址栏输入这个action.
得到的是一份中文为'?'的XML.为什么呢?
我在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>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
然后我在浏览器的地址栏输入这个action.
得到的是一份中文为'?'的XML.为什么呢?
我在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>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
javascirpt中有escape('中文'). java中有java.net.URLEncoder.encode这个方法进行编码。
我的action大概是这样:public class MyAction extends BaseAction
{
public String test()
{
String tmp = " <?xml version='1.0' encoding='UTF-8'?> <chart "caption='标题'> </chart>" ;
return "strings";
}
}
所以我的URL大概是这样:http://localhost:8080/myapp/myAction!test.action
这个action将返回我的String tmp 到前台.
其中的中文就"???"了...
页面..都是UTF-8...不过.我是直接在地址栏上访问action啊.在class类中定义的中文,
经过struts传出来,就变成??了.
String str=new String(request.getParameter("subName").getBytes("ISO-8859-1"),"GB2312");