Jsp中文乱码问题

Jsp页面中,一般的中文字符都能正常显示,就是一些较偏的字(例如:垚、玥、燊等等),直接夹在jsp的html中也能正常显示,但是把这些较偏的字作为参数在jsp页面之间传递时,就总是显示乱码。<%@ page……%> 标签无论使用gbk还是utf-8都试过了,就是不行!请各位大虾帮帮忙。
最新回答
脸红妹妹

2024-09-08 04:45:40

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
response.setContentType("text/html;charset=UTF-8");

处理文件:(.java)
转码的三种方法:
A 接受参数时进行编码转换

String str = new String(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8"); 这样的话,每一个参数都必须这样进行转码。很麻烦。但确实可以拿到汉字。

B 在请求页面上开始处,执行请求的编码代码, request.setCharacterEncoding("UTF-8"),把提交内容的字符集设为UTF-8。这样的话,接受此参数的页面就不必在转码了。直接使用
String str = request.getParameter("something");即可得到汉字参数。但每页都需要执行这句话。

这个方法也就对post提交的有效果,对于get提交和上传文件时的enctype="multipart/form-data"是无效的。稍后下面单独对这个两个的乱码情况再进行说明。

C 为了避免每页都要写request.setCharacterEncoding("UTF-8"),建议使用过滤器对所有jsp进行编码处理。

新手可以暂时不考虑过滤器的方法,过滤器一般都会涉及到配置开发,要修改web.xml,还算是比较麻烦的,建议接触java一段时间后再考虑使用过滤器的方法。或者如果应用了struts框架,可以查看struts的转码过滤器配置。
你是我所有的梦

2024-09-08 00:53:16

JSP中文乱码解决方法3步:
第一步:使用拦截器 统一设置request的请求为UTF-8
第二部 在乱码JSP页面加上:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
第三部:配置服务器编码格式 假如你是tomcat在tomcat安装目录conf下找到server.xml 搜索:port="8080" 在这里加上 URIEncoding="UTF-8"
完整如下:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>

这样基本不会出问题了
绝望透心凉

2024-09-08 03:04:40

加上
request.setCharacterEncode(“gbk”)(只对post方法有效,要在getParameter()前设置)

或者在tomcat的目录下的conf文件夹内的server.xml文件中找到
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" />
将其改为
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" URIEncoding="GBK"/>
(后面这个只对get方法有效)

还有一种对get方法和post方法都有效:new String(x.getBytes(“iso-8859-1”), "gbk”)