jsp中文乱码

mysql5.5.8UTF-8Myeclipse8.6UTF-8JavaUTF-8为什么还是出错呢?我取名字的时候... mysql5.5.8 UTF-8
Myeclipse 8.6 UTF-8
Java UTF-8
为什么还是出错呢? 我取名字的时候
展开
 我来答
beckham1917772
推荐于2018-04-06 · TA获得超过2143个赞
知道小有建树答主
回答量:504
采纳率:0%
帮助的人:528万
展开全部
页面也需要设置转码的:
页面:(.jsp)
<%@ 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的转码过滤器配置。
匿名用户
2013-09-19
展开全部
刚开始学习jsp的程序员都会遇到这样一个问题,就是网页上的中文无法显示.总结了以下几条方法。
1、在jsp页中加入一条语句:
<%@ page contentType="text/html;charset=gb2312" %>中文显示就正常了。

2、对于从网页中的文本框通过String parameter = request.getParameter(“parameter”);方式获得的字符串,均是8859_1的编码,
如果想把它显示在网页上就必须得用parameter = new String(parameter.getBytes(“8859_1”),”gb2312”)进行转换,windows和linux这两种系统都是一样的。
有一个简单方法,就是在 getParameter() 方法获取参数之前,使用request.setCharacterEncoding("GB2312");,将提交的信息转化为 GB2312 编码。

3、但是对于将数据写入数据库的问题,采取的方式就不同了:
windows下,必须要采用该字符串转换再插入数据库,而linux下就不需要,而是直接把8859_1编码的字符插入。
如果从数据库中读出的数据,对于windows因为在插入时已经做了转换,所以读出时已经是gb2312的,当把它显示在网页上时,不需要做编码转换,而 linux上的mysql中的数据是8859_1的所以要做编码的转换。

4、 如果你给某个字符串变量赋予一个中文字符串的值,那么在你取出他时,在网页上的显示是不需要做字符转换的,
但是如果你要在linux下做字符的比较,则还需要把字符做parameter = new String(parameter.getBytes(“gb2312”),”8859_1”)的转换。

5、长江电力网站解决中文问题的方法是:
1)在catalina.sh文件中的相关位置添加下面一行
-Dfile.encoding=GBK \
2)在每个jsp文件的最前面添加下面两行
<%@ page contentType="text/html; charset=GBK" %>
<%request.setCharacterEncoding("GBK");%>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友145f278fe
2010-12-31 · TA获得超过309个赞
知道小有建树答主
回答量:227
采纳率:0%
帮助的人:154万
展开全部
1.确保你的这个jsp页面,右击properties---Resource--Text file endoding设置为utf-8
2.确保你的这个jsp页面里拷贝过来的代码,看有中文没有,有的话重新打一遍或者删去,因为你的这些中文原始可能是其他字符的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mrkingyang
2008-10-30 · TA获得超过2627个赞
知道大有可为答主
回答量:1941
采纳率:58%
帮助的人:255万
展开全部
页头改成:
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>

估计你也是用Tomcat的:
修改tomcat/conf/server.xml文件:

<Connector port="80"
maxThreads="300" minSpareThreads="50" maxSpareThreads="100"
enableLookups="false" redirectPort="8443" acceptCount="150"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" useBodyEncodingForURI="true" URIEncoding="gb2312"/>

注意:添加了useBodyEncodingForURI="true" URIEncoding="gb2312",这样页头的pageEncoding="gb2312" 就可以生效,保证jsp页面按照制定编码进行编译。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
infosk
2010-12-31
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
可以在JSP代码中加入request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式