从jsp页面向servlet里传中文字符时出乱码,怎么解决

2024-11-07 04:35:44
推荐回答(5个)
回答1:

您可以参考手动转码的方法来解决乱码问题:

String s = request.getP...("xxx");
// s 是 iso 编码的乱码
s = new String(
s.getBytes("ISO-8859-1"),
"UTF-8");

SP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它[1]  是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。

JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

回答2:

服务器默认使用 ISO-8859-1 编码接受参数

服务器端
-------------------------------
1. 手动转码

String s = request.getP...("xxx");
// s 是 iso 编码的乱码
s = new String(
s.getBytes("ISO-8859-1"),
"UTF-8");

2. POST

request.setCharacterEncoding("UTF-8");

3. GET

Tomcat 设置:
server.xml 中配置:

port="8080"
maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"

URIEncoding="UTF-8"

/>
客户端脚本
---------------------------------------
encodeURL("含特殊字符的字符串")

将字符串以 UTF-8 字符集进行编码

回答3:

全部改成UTF-8,,或者是
___wuding 的
String XXXX = new String(request.getParameter("XXX").getBytes("ISO-8859-1"),"UTF-8");
貌似这句话有问题啊~

回答4:

你将servlet里面的编码和jsp页面的编码设置成一致的
response.setContentType("text/html; charset=GBK");
request.setCharacterEncoding("GBK");

回答5:

在Web.xml里面配置个过滤器filter,并且创建一个filter类
在Servlet类里面加上request.setCharacterEncoding("GBK");
把你eclipse或myeclipse里面的编码方式改成GBK
还有你的jsp页面的编码方式也改成GBK 就好了