jsp中文乱码
mysql5.5.8UTF-8Myeclipse8.6UTF-8JavaUTF-8为什么还是出错呢?我取名字的时候...
mysql5.5.8 UTF-8
Myeclipse 8.6 UTF-8
Java UTF-8
为什么还是出错呢? 我取名字的时候 展开
Myeclipse 8.6 UTF-8
Java UTF-8
为什么还是出错呢? 我取名字的时候 展开
8个回答
展开全部
页面也需要设置转码的:
页面:(.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的转码过滤器配置。
页面:(.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");%>
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");%>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.确保你的这个jsp页面,右击properties---Resource--Text file endoding设置为utf-8
2.确保你的这个jsp页面里拷贝过来的代码,看有中文没有,有的话重新打一遍或者删去,因为你的这些中文原始可能是其他字符的
2.确保你的这个jsp页面里拷贝过来的代码,看有中文没有,有的话重新打一遍或者删去,因为你的这些中文原始可能是其他字符的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
页头改成:
<%@ 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页面按照制定编码进行编译。
<%@ 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页面按照制定编码进行编译。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以在JSP代码中加入request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询