jsp 页面数据提交到 Servlet 中,提交上去的中文数据出现乱码,jsp 中用 post 方式提交,在 Servlet 中加入了 request.setCharacterEncoding(“UTF-8”) 也没用 |
|
转码一下,
String name = new String(request.getParameter("username").getBytes("ISO-8859-1"),"UTF-8"); 网上也有很多种,同样处理乱码形式的种类也很多,建议LZ先到网上找答案 |
|
你jsp的编码设的什么?
|
|
多试几次编码转换。
|
|
是你的环境不统一
|
|
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> |
|
这样写不是 get 方式提交的转码方式吗,对 post 不适用吧, 我的是 post 方式提交的 |
|
哪地方不统一? 怎么改? |
|
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 配置来解决 |
|
我的就是这个样的 |
|
帮帮忙,不要沉
|
|
转码也不行吗?这个应该是环境不同意才会出现的状况。
|
|
jsp的文件编码为GBK,该成UTF-8即可。
|
|
该怎么改? |
|
20分 |
前端
ajax post方式提交 后台取值 debug |
出乱码,应该是你控制台里出的乱码吧。吧项目的编码设成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文件里设置一下编码
|