Code Bye

提交数据中文乱码

 jsp 页面数据提交到 Servlet 中,提交上去的中文数据出现乱码,jsp 中用 post 方式提交,在 Servlet 中加入了 request.setCharacterEncoding(“UTF-8”) 也没用

转码一下,
String name = new String(request.getParameter("username").getBytes("ISO-8859-1"),"UTF-8");

 网上也有很多种,同样处理乱码形式的种类也很多,建议LZ先到网上找答案

你jsp的编码设的什么?
多试几次编码转换。
是你的环境不统一
引用 2 楼 shixitong 的回复:

你jsp的编码设的什么?

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
引用 1 楼 jiafeng_lee 的回复:

转码一下,

String name = new String(request.getParameter("username").getBytes("ISO-8859-1"),"UTF-8");

 网上也有很多种,同样处理乱码形式的种类也很多,建议LZ先到网上找答案

这样写不是 get 方式提交的转码方式吗,对 post 不适用吧, 我的是 post 方式提交的
网上查了,但是找到的答案不行

引用 4 楼 luoyefeiwu1 的回复:

是你的环境不统一

哪地方不统一? 怎么改?

public class CharactorFilter implements Filter {
    //获取字符编码
    String encoding=null;

    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        if(encoding!=null){
           request.setCharacterEncoding(encoding);
            response.setContentType("text/html;charset="+encoding);
        }
        chain.doFilter(request, response);

    }

    public void init(FilterConfig filterConfig) throws ServletException {
 
        encoding=filterConfig.getInitParameter("encoding");

    }

    public void destroy() {
        encoding=null;
    }

}



web.xml中过滤器的配置

<filter>    
    <filter-name>CharactorFilter</filter-name>  
   <filter-class>cn.com.Filter.CharactorFilter</filter-class>
     <init-param> 
         <param-name>encoding</param-name> 
         <param-value>utf-8</param-value>
     </init-param>
  </filter>
  <filter-mapping>
      <filter-name>CharactorFilter</filter-name>
      <url-pattern>/*</url-pattern>  
      </filter-mapping>


还有就是你用的容器编码设置为,最好都统一一下,如果是Tomcat,你看看Tomcat下的编码是不是一致的?

引用 9 楼 yiran_ming 的回复:
public class CharactorFilter implements Filter {
    //获取字符编码
    String encoding=null;

    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        if(encoding!=null){
           request.setCharacterEncoding(encoding);
            response.setContentType("text/html;charset="+encoding);
        }
        chain.doFilter(request, response);

    }

    public void init(FilterConfig filterConfig) throws ServletException {
 
        encoding=filterConfig.getInitParameter("encoding");

    }

    public void destroy() {
        encoding=null;
    }

}



web.xml中过滤器的配置

<filter>    
    <filter-name>CharactorFilter</filter-name>  
   <filter-class>cn.com.Filter.CharactorFilter</filter-class>
     <init-param> 
         <param-name>encoding</param-name> 
         <param-value>utf-8</param-value>
     </init-param>
  </filter>
  <filter-mapping>
      <filter-name>CharactorFilter</filter-name>
      <url-pattern>/*</url-pattern>  
      </filter-mapping>


还有就是你用的容器编码设置为,最好都统一一下,如果是Tomcat,你看看Tomcat下的编码是不是一致的?

这样加过滤也不行,还是乱码。Tomcat 中是默认配置,不想通过改 Tomcat 配置来解决

引用 8 楼 fangwei198712 的回复:

我的就是这个样的

帮帮忙,不要沉
转码也不行吗?这个应该是环境不同意才会出现的状况。
jsp的文件编码为GBK,该成UTF-8即可。
引用 14 楼 wqc5461 的回复:

jsp的文件编码为GBK,该成UTF-8即可。

引用 13 楼 wushixt 的回复:

转码也不行吗?这个应该是环境不同意才会出现的状况。

该怎么改?
其实我从数据库中读出来显示在 jsp 页面的内容中文是没有乱码的


20分
前端

ajax     post方式提交

后台取值

debug
引用 15 楼 lingfeng892 的回复:
Quote: 引用 14 楼 wqc5461 的回复:

jsp的文件编码为GBK,该成UTF-8即可。

引用 13 楼 wushixt 的回复:

转码也不行吗?这个应该是环境不同意才会出现的状况。

该怎么改?
其实我从数据库中读出来显示在 jsp 页面的内容中文是没有乱码的

出乱码,应该是你控制台里出的乱码吧。吧项目的编码设成UTF-8就可以了。。


20分
看看你页面最上面创建的是什么编码格式如果不是UTF-8可以加上
或者后台接收参数时进行编码格式转换
String value = new String (request.getParameter(“name”).getBytes(“ISO-8859-1″),”UTF-8”);
如果以上都解决不了的话   可能是数据库编码设置问题
MYSQL一般会出现这样的问题 可以用以下方法查看编码格式

其中,character_set_client为客户端编码方式;character_set_connection为建立连接使用的编码;character_set_database数据库的编码;
character_set_results结果集的编码;
character_set_server数据库服务器的编码;
只要保证以上四个采用的编码方式一样,就不会出现乱码问题。

jsp文件单独设置成UTF-8
1.tomcat 服务器设置的编码 只对 get请求有效

2.post请求是正文提交,只需要设置request .setCharacterEncoding即可,但是这样很麻烦一般会用过滤器去做(常用的spring的 字符集过滤器)

3.上面两种可以解决大多数的乱码问题,但是如果你用了struts等MVC框架,请检查 对应的struts.properties里面配置的编码,如果经过框架处理已经转换成了不匹配的编码,后面无论怎么转换都是乱码。

JSP文件里设置一下编码

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明提交数据中文乱码