jsp 下拉列表 中文 乱码。 百度了很多这种问题的,但是都没有解决乱码问题,崩溃了!

jsp页面代码如下
这是jsp的开头
<%@ page language="java" import="java.sql.*" pageEncoding="utf-8"%>
<%@ page contentType="text/html;charset=utf-8" %>

这是接收数据的代码:
strPage = request.getParameter("page");
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String hotelname = request.getParameter("hotel_name");
String hotelstar = new String(request.getParameter("hotel_star").getBytes("ISO-8859-1"),"utf-8");
这是form表单要提交的内容
<table cellpadding="0" cellspacing="0" width="195px" align="center">
<tr>
<td height="30" align="center"> 名称: </td>
<td><input type="text" name="hotel_name" style="width: 136px;" /></td>
</tr>
<tr>
<td height="30" align="center"> 星级: </td>
<td><select name="hotel_star" style="width: 140px;">
<option value="0" selected> - 不限 - </option>
<option value="五星级酒店"> 五星级 </option>
<option value="四星级酒店"> 四星级 </option>
<option value="三星级酒店"> 三星级 </option>
<option value="酒店式公寓"> 酒店式公寓 </option>
</select></td>
</tr>
</table>
能加utf-8的地方都加了
if(!hotelname.equals(null))//============如果hotelname 不为空
{
System.out.println("-----------------hotelname="+hotelname);
}else{
hotelname ="";
}

if(!hotelstar.equals("0"))//============如果hotelstar 不为0
{
hotelstar = " and hotelstar = "+hotelstar + " ";
System.out.println("-----------------hotelstar="+hotelstar);
}
输出结果 name能取到汉字,而hotelstar取不到汉字!
这是Tomcat 报的异常
description The server encountered an internal error () that prevented it from fulfilling this request.
org.apache.jasper.JasperException: An exception occurred processing JSP page /searchhotel.jsp at line 72

69: strSQL = "select hotel.hotel_id,hotel_photo_id,hotel_photo_url,hotel_name,star,hotel_introduce,area,room_count,min(webprice) as price from hotel_photo join hotel on hotel_photo.hotel_id=hotel.hotel_id join hotel_room on hotel.hotel_id=hotel_room.hotel_id where hotel_name like '%" +hotelname+"%'"+hotelstar+"group by hotel.hotel_id";
70:
71: //镓ц�SQL璇�彞骞惰幏鍙栫粨鏋滈泦
72: sqlRst = sqlStmt.executeQuery(strSQL);
73: //銮峰彇璁板綍镐绘暟
74: sqlRst.last();
75: intRowCount = sqlRst.getRow();
65至79代码:
strSQL = "select hotel.hotel_id,hotel_photo_id,hotel_photo_url,hotel_name,star,hotel_introduce,area,room_count,min(webprice) as price from hotel_photo join hotel on hotel_photo.hotel_id=hotel.hotel_id join hotel_room on hotel.hotel_id=hotel_room.hotel_id where hotel_name like '%" +hotelname+"%'"+hotelstar+"group by hotel.hotel_id";

//执行SQL语句并获取结果集
sqlRst = sqlStmt.executeQuery(strSQL);
//获取记录总数
sqlRst.last();
intRowCount = sqlRst.getRow();
为什么 我的汉字注释在Tomcat里面报告异常的时候是乱码? 是我网页本身汉字的问题吗,请哪位高手来解答,解救一下啊!看了无数帖子都不好使啊。
我的开发工具是 Tomcat + Myeclipse 网页是jsp 用dreamweaver编辑的。
XML文件开头也是 UTF-8
<?xml version="1.0" encoding="UTF-8"?>

Dreamweaver中默认的字符编码是gb2312,因此,如果都使用Dreamweaver中“文件”->“新建”的方式创建html页和JavaScript页,网页不会有字符编码的问题。用Dreamweaver创建的html,<head>中的<meta>会显示如下:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

其中,charset=gb2312,这是Dreamweaver的默认编码设置,这个设置,会使Dreamweaver编辑的JavaScript也用gb2312来编码。

如果想将html的编码方式设置成其它,比如utf-8,必须把charset的值改成utf-8:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

并且,要将Dreamweaver的编码方式设置为utf-8,设置方法:“编辑”->“首选参数”->“新建文档”->“默认编码”,在下拉列表中选择“Unicode (UTF-8)”。还要注意,改变这个设置以后,在Dreamweaver中新建的文本都会使用utf-8编码,但是,在设置改变之前创建的gb2312编码的文本,编码方式并不会变,即使在Dreamweaver中采用“另存为”的方式,也不能变成utf-8编码(其实,在Dreamweaver中,这两种编码方式编辑的JavaScript文件中的字母形状是不一样的,可以很明显地看出来,如下图,左图是utf-8编码的,右图是gb2312编码的),所以,必须新建一个文件,把原来文件的内容复制进去。

此外,很多对Dreamweaver编辑器的设置,都能在“首选参数”中设置。

还没解决吗,去我博客看看吧,http://blog.sina.com.cn/s/blog_5247df740100jyga.html
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-09
1 String str = new String(“原串”.getBytes(“原编码”),“须解析成的编码”);
String username=new String(request.getParameter("username").getBytes("ISO8859-1"),"GB2312");
2 request.setCharacterEncoding("gb2312");
response.setCharacterEncoding("gb2312");
在tomcat的conf中server.xml文件中<context >中设置useBodyEncodingForURI="true"或URIEncoding="GB2312"重启服务器
3 过滤器filter,就是对请求的地址进行拦截处理,然后交给servlet
新建一个filter,implements javax.servlet.Filter
覆盖其三个方法
web.xml文件中增加一个<filter>标签
<filter>中可以设置初始化参数<init-param></init-param>
第2个回答  2011-04-11
sever.xml 找到下面的
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK' />
看看你的是不是URIEncoding='GBK' ,如果不是改成那个再看看可以吗。
第3个回答  2011-04-12
项目发给我,帮你搞定 shenjianzhuang@163.com
第4个回答  2011-04-09
你的Dreamweaver的字符编码跟你的myeclipse字符编码不一致。

jsp 下拉列表 中文 乱码。 百度了很多这种问题的,但是都没有解决乱码...
并且,要将Dreamweaver的编码方式设置为utf-8,设置方法:“编辑”->“首选参数”->“新建文档”->“默认编码”,在下拉列表中选择“Unicode (UTF-8)”。还要注意,改变这个设置以后,在Dreamweaver中新建的文本都会使用utf-8编码,但是,在设置改变之前创建的gb2312编码的文本,编码方式并不会变,即使在...

如何处理get\/post提交的中文乱码问题
如果submit.jsp提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过request.seCharacterEncoding("gb2312")对请求进行统一编码,就实现了中文的正常显示。修改后的process....

如何解决网页中文乱码问题
1. JSP页面显示中文乱码问题通常是由于未在JSP文件中指定字符集编码所致。解决方法是在JSP页面的顶部添加以下代码来指定字符集为UTF-8:```jsp ```2. 数据库中文乱码问题可能会导致插入或查询数据库时中文数据出现乱码。解决方法包括在数据库连接字符串中指定字符集为UTF-8,以及在JSP页面中设置响应和...

jsp中处理中文乱码的解决方案有哪些
1、Tomcat 的 server.xml 文件,设置服务器端口工作方式 2、Servlet 和 JavaBean 对字符串字符集处理的统一 3、JSP页面的字符集统一 完成这三点统一,中文想乱码都难,如果使用MySQL的话,数据表也需要做UTF-8统一。修改Tomcat的server.xml文件,该文件位于 tomcat\/conf,红色部分为添加部分,也就是当前...

jsp页面转发(跳转)中文乱码怎么办。已经设置过过滤器了,但没用,还是乱...
你可以设置下tomcat的默认编码为utf-8,在tomcat安装目录下的conf文件中修改,你的项目默认编码也改为UTF-8

在JSP页面提交表单,以post方式提交,写了过滤器处理中文乱码问题...
回答:可能造成的原因: 页面 后台业务 数据 中间有一个环节编码不一致。 是否对该字段做了编码转换。 针对1: 检查页面编码 是什么编码。如: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %> 过滤器设置的是什么编码。数据库采用什么编码。然后最好统一编码。 针对2: 看...

JSP中文乱码问题如何解决?
Java中文乱码问题的根源在于其内核和class文件基于unicode,使得跨平台性强大,但同时也带来中文乱码的困扰。问题主要由两部分构成:Java(含JSP)源文件编译时的乱码与Java程序与其他媒介交互产生的乱码。在Java文件中,若包含中文,且编译成class文件时使用的编码方式与源文件编码不一致,则会产生乱码。解决...

JSP页面中文乱码问题解决方法
JSP页面中文乱码问题解决方法 1.新建两个JSP页面 2.在c.jsp中新建一个表单 3.在d.jsp中接收这个值 4.运行c.jsp 5.输入带中文的参数,点击提交 6.发现接收过来的中文是乱码,英文正常 解释下:JSP默认参数在传输过程中使用的编码为ISO-8859-1 而两个页面使用的都是UTF-8 的编码 7.在d.jsp中...

jsp页面获取中文乱码怎么解决方法
1、在jsp页中加入一条语句:<%@ page contentType="text\/html;charset=gb2312" %>中文显示就正常了。2、对于从网页中的文本框通过String parameter = request.getParameter(“parameter”);方式获得的字符串,均是8859_1的编码,如果想把它显示在网页上就必须得用parameter = new String(parameter....

有谁知道中文乱码问题
只要涉及中文的地方全部是乱码,解决办法:在数据库的数据库URL中加上useUnicode=true&characterEncoding=GBK就OK了。四、数据库的显示乱码 在mysql4.1.0中,varchar类型,text类型就会出现中文乱码,对于varchar类型把它设为binary属性就可以解决中文问题,对于text类型就要用一个编码转换类来处理,实现如下:...

相似回答
大家正在搜