我在SERVLET里用PrintWriter out = response.getWriter();
然后用
out.println("<SCRIPT LANGUAGE=\"JavaScript\">\r\n");
out.println("alert(\'中文\');");
out.println("</SCRIPT>\r\n");
中文出现乱码,试了几种方法还是不行,请问这是怎么回事/
然后用
out.println("<SCRIPT LANGUAGE=\"JavaScript\">\r\n");
out.println("alert(\'中文\');");
out.println("</SCRIPT>\r\n");
中文出现乱码,试了几种方法还是不行,请问这是怎么回事/
解决方案 »
- 动态的饼状图
- 关于 HTTP Status 404 - Servlet action is not available的问题
- 请问各位老大:如何实现公告板(例如:一个MIS系统中,该单位需要发布通知或者奖励类似的公告)
- struts2拦截器要怎么过滤掉网页提交的非法信息?
- 如何截取包含html标记内容的字符串,使得到的字符串里的html标记依然可以正常显示,比如<img src="" />,而不是得到<img src="....
- Unable to compile class for JSP
- 怎么样去除字符串中间的空格?
- jsp的菜菜鸟级问题
- 急,一个JavaScripte的问题
- jsp 调用SERVLET的POST方法时出错
- 急切得到回答jspsmart包图片上传方法upload()问题
- 旧题复问。。。EL问题
response.setCharacterEncoding("UTF-8");
所有可一设置编码的地方 全设置 utf-8
response.setContentType("text/html; charset=gb2312");
response.setCharacterEncoding("gb2312");
如果还不行,进行转码
/***
* 单纯字符的处理,一个字符串进行编码处理
* @param str
* @return
*/
public static String code(String str){
// step 1 编码处理
String strcode="";
if(null!=str){
try {
strcode=new String(str.getBytes("ISO8859-1"),"gbk");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
strcode = str;
}
// step 2 返回处理后的字符串
return strcode;
}
out.println("alert(\'中文\');");
out.println(" </SCRIPT>\r\n");
之前加一句 out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />");
试试
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
写在
PrintWriter out = response.getWriter();
之前
发了N次了..呵
必解决中文问题
1.在Tomcat 的server.xml 中
有
<Connector port= "8080 " maxHttpHeaderSize= "8192 "
maxThreads= "150 " minSpareThreads= "25 " maxSpareThreads= "75 "
enableLookups= "false " redirectPort= "8443 " acceptCount= "100 "
connectionTimeout= "20000 " disableUploadTimeout= "true " URIEncoding= "gbk " /> 2.Filter
<?xml version= "1.0 " encoding= "UTF-8 "?>
<web-app version= "2.4 "
xmlns= "http://java.sun.com/xml/ns/j2ee "
xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance "
xsi:schemaLocation= "http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd ">
<filter>
<filter-name> setCharacterEncodingFilter </filter-name>
<filter-class> asp.SetCharacterEncodingFilter </filter-class>
<init-param>
<param-name> encoding </param-name>
<param-value> GBK </param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name> setCharacterEncodingFilter </filter-name>
<url-pattern> /* </url-pattern>
</filter-mapping>
</web-app> package asp;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class SetCharacterEncodingFilter implements Filter
{
/**
* Example filter that sets the character encoding to be used in parsing the incoming request
*/
/**
* Take this filter out of service.
*/
public void destroy()
{
}
/**
* Select and set (if specified) the character encoding to be used to interpret request parameters for this request.
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
{
// response.setCharacterEncoding( "UTF-8 ");
request.setCharacterEncoding( "GB18030 ");
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException
{
}
}
3.每个页面 <%@ page contentType= "text/html; charset=gb2312 " language= "java " errorPage= " " %> 一切就OK..
如果用Ajax
那么.在保证前三个部份的前题下. get 不变
post 使用两次encodeURI
function createPostDo(/*条件*/,actionUrl)/*Ajax post 第二步 将Post的条件格式发送到指定的URL*/
{
post = encodeURI(/*条件*/);
post = encodeURI((/*条件*/);//两次,很关键
var xmlObj = new ActiveXObject( 'Msxml2.XMLHTTP ');
var URL = actionUrl;//文件名需要调整成测试时的相应位置?
xmlObj.open ( 'post ',URL,false);
xmlObj.setrequestheader( "cache-control ", "no-cache ");
xmlObj.setrequestheader( "Content-Type ", "application/x-www-form-urlencoded ");
xmlObj.send (post);//注意:POST方式,使用这个来发送内容?
}
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
写在
PrintWriter out = response.getWriter();
之前这个是正解.一定要写在前面,否则和不写一样.