有以下几种方法可以解决
1.在jsp 的java代码执行之前写入在 <% response.setContentType("text/htmlcharset=UTF-8")%>一定要是之前,因为设了这个下面代码才开始生效。可以写在jsp开头。
2.在在Servlet中service方法开始部分写入 response.setContentType("text/htmlcharset=UTF-8")
3.在过滤器中写入在Servlet中 response.setContentType("text/htmlcharset=UTF-8") 一般都写在过滤器中,可以减少代码重复量
4.对于提交已经编码的数据需要先解码再编码,也就是楼主的方法
new String(str.getBytes("ISO8859-1"),"UTF-8") 这种方法可以解决提交时候的问题,
new String(str.getBytes("UTF-8"),"ISO8859-1") 同样的道理型咐数解决已经编码的数据要显示到页面的时候就要反着写
还有就是项目中最好使用统一的编码包括:文件保存的时候使用的编码,jsp文件翻译时使用的编码,服务器响应编码,和提交编码,还有就是数据库的编码。
eclipse下:jsp和class文件保存时使用编码在文件右键的property选项中能找到,
jsp页面编码有两个<%@ page language="java" contentType="text/htmlcharset=UTF-8"
pageEncoding="UTF-8"%>
pageEncoding是设的是tomcat将jsp文件翻译成servlet程序的时候执行的翻译编码,而charset才是服务器响应编码 也就是servlet中的response.setCharacterEncoding 一般都设置成UTF-8;
提交数据的时候也需要你简含那样转码,不过转码工作却实是写在过滤器里,可以写代码的减少麻烦
提交参数时候要设置request的编码,也就是你遇到的问题,按照我前四步的说明做就可以了。
JSP(全称JavaServer Pages)是由Sun Microsystems公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请卜首求,而动态生成HTML、XML或其他格式文档的Web网页的技术标准。JSP技术是以Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他 *** 作系统上运行。
在前端页面的form表单字符集为UTF-8的前提下,向后端发出POST请求传入中文参数,出现乱码问题
Spring容器用来创建请求读和解析枯升POST数据的默认编码是"ISO-8859-1",因此出现中文乱码
1) 手动转码
手动将HttpServletRequest转码为utf-8
2) 配置老茄过滤器
在web.xml中配置filter,设置url-param参数为/*将所有没含老请求转为uft-8编码
你需要写这行代码,有可能是你编码格式设置错了;
在请求的下面加这行代码胡茄
rsp = requests.get(url,headers = headers)
rsp.encoding = rsp.apparent_encoding
它会自动散坦匹配文档中的冲做桐编码格式,如果还不行你再追问。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)