jsp页面添加到数据库,数据库里面显示的全是乱码?急!!! jsp页面我设置为<%@ page contentType="text/html;charset=gbk"%>,我MyEclipse用的是9.0的版本,数据库用的sql2005的,只要添加到数据库的中文全是乱码? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 数据提交分get被post两种,你先改成post提交表单试试。 填上这两句话<% request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");%/> 一句也行<% request.setCharacterEncoding("utf-8");%/>在添加之前 乱码问题:客户端提交中文,servlet中获取的是乱码: a:如果是get方式,在tomcat中,在conf/server.xml文件中8080端口的connector元素增加URIEncoding="utf-8" b:如果是post方式,在servlet中,request.setcharactorEncoding("utf-8");放在request.getparameter之前 servlet相应中文,客户端显示乱码:response.setCharactorEncoding("utf-8");该代码要放在response.getWriter之前另:jdbc:mysql://***:3306/wwwjob?characterEncoding=utf8楼主对比一下 写个过滤器,过了request response,请求响应乱码 你在JSP页面用encodeURI先处理一下要提交的内容( 例如 name=encodeURI(name); ) 在Servlet里要加response.setHeader("iso-8859-1","utf-8");request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8"); JSP页面用utf—8把 gbk容易出现乱码你说你数据库里全是乱码 数据库没设数据类型吗 乱码怎么会写进数据库呢 好奇 有点想看看截图 本人新手一枚 希望对楼主有帮助 楼上的回复我看过了,我在Action里面打印了修改过的名字,全是问号,所以应该是JSP页面设置字符集的问题?我已经设置为UTF-8了,但打印出来的还是?号,求高人指点…… 你这句话<%@ page contentType="text/html;charset=gbk"%>是页面解析字符集是gbk的编码格式、<%@ page pageEncoding="UTF-8"%>这句话才是页面的传值指定编码格式、你在action得到就是乱码那肯定就是jsp 编码格式问题、 你用的是struts几 1.X还是2.X ?如果版本是2.1.6 那有个bug如果不是 试试在struts.xml里设置这句话<constant name="struts.i18n.encoding" value="GBK"/>如果还不行String filename = request.getParammeter("filename");filename = new String(filename.getBytes("ISO-8859-1"),"GBK");表单提交的method 是什么? 请设置method="post"如果还不行、那就修改tomcat的配置文件的编码改咯 改tomcat是下下策、tomcat的 server.xml中修改下面这段 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" /> 我用的struts是1.x,tomcat我已经设置了为utf-8,提交方式也是post,只有你说的struts.xml 我再试一下吧! 设置成gbk 你要确保字符集编码格式统一 出个大招、自己写个字符编码拦截、import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;/** 编码过滤器 */public class CharacterEncodingFilter implements Filter { String encoding = null; FilterConfig filterConfig = null; /** 初始化方法 */ public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter("encoding"); } /** 过滤处理方法 */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (encoding!=null){ //对请求进行编码设置 request.setCharacterEncoding(encoding); } System.out.println("设置的字符集为:"+encoding); System.out.println("经过过滤器后的字符集为 : "+request.getCharacterEncoding()); //将处理权转交给下一个处理器 chain.doFilter(request,response); } /** 销毁方法 */ public void destroy() { this.encoding = null; this.filterConfig = null; }}web.xml里 把下面的代码放在struts拦截之前、<filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>com.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GB2312</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <!--<servlet-name>action</servlet-name>--> <url-pattern>/*</url-pattern><!--这里对应用下的所有请求都进行过滤--> </filter-mapping> String filename = request.getParammeter("filename");filename = new String(filename.getBytes("ISO-8859-1"),"GBK");这一句改过了,中文是可以显示了,但是GBK要改成utf_8,还有就是,有的我是用实体类代替form的,那样转换太复杂了,求一个更简易的方法? web.xml的encoding具体编码请写自己项目的gbk 而<filter-class>com.filter.CharacterEncodingFilter</filter-class>请写自己项目的真实类路径 JSP页面添加到数据库。这句话本身就有问题。 你Eclipse设置字符集了吗?打开eclipse-->Window-->preference 搜索workspace 设置字符集“GBK”一般要保持三个地方统一,JSP编码、class文件编码、数据库编码 struts2 初学,简单问题请教 表单的数据类型问题 servlet常驻内存 请问如何在html或javascript调用DLL文件中的方法和如何向DLL传递参数,最好能有一个详细的示例,谢谢! 为何新增的输入框不能被提交? 设置tr内的所有元素不可用 请教!!!!急!! 关于JVM的问题!!!!!!!!!!非常着急!!!!!!!!在线等待!!!!!!!!!!! 一个数据库移植性的问题!!!!!!!!!!我快吐血了!!!!!! 哪里有免费的jsp空间啊,偶想上传一下我的了 留言本程序 试试看。 对于请求参数的判断问题 为什么不能打印出来?
<% request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
%/>
%/>在添加之前
a:如果是get方式,在tomcat中,在conf/server.xml文件中8080端口的connector元素增加URIEncoding="utf-8"
b:如果是post方式,在servlet中,request.setcharactorEncoding("utf-8");放在request.getparameter之前
servlet相应中文,客户端显示乱码:response.setCharactorEncoding("utf-8");该代码要放在
response.getWriter之前另:jdbc:mysql://***:3306/wwwjob?characterEncoding=utf8楼主对比一下
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
JSP页面用utf—8把 gbk容易出现乱码
你说你数据库里全是乱码 数据库没设数据类型吗 乱码怎么会写进数据库呢 好奇 有点想看看截图
本人新手一枚 希望对楼主有帮助
我已经设置为UTF-8了,但打印出来的还是?号,求高人指点……
你这句话
<%@ page contentType="text/html;charset=gbk"%>
是页面解析字符集是gbk的编码格式、
<%@ page pageEncoding="UTF-8"%>
这句话才是页面的传值指定编码格式、你在action得到就是乱码那肯定就是jsp 编码格式问题、
<constant name="struts.i18n.encoding" value="GBK"/>如果还不行
String filename = request.getParammeter("filename");
filename = new String(filename.getBytes("ISO-8859-1"),"GBK");
表单提交的method 是什么? 请设置
method="post"
如果还不行、那就修改tomcat的配置文件的编码改咯
tomcat的 server.xml中修改下面这段 <Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
设置成gbk 你要确保字符集编码格式统一
import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;/** 编码过滤器 */
public class CharacterEncodingFilter implements Filter { String encoding = null;
FilterConfig filterConfig = null;
/** 初始化方法 */
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
} /** 过滤处理方法 */
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if (encoding!=null){
//对请求进行编码设置
request.setCharacterEncoding(encoding);
}
System.out.println("设置的字符集为:"+encoding);
System.out.println("经过过滤器后的字符集为 : "+request.getCharacterEncoding());
//将处理权转交给下一个处理器
chain.doFilter(request,response);
} /** 销毁方法 */
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}}web.xml里 把下面的代码放在struts拦截之前、<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>com.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<!--<servlet-name>action</servlet-name>-->
<url-pattern>/*</url-pattern><!--这里对应用下的所有请求都进行过滤-->
</filter-mapping>
filename = new String(filename.getBytes("ISO-8859-1"),"GBK");
这一句改过了,中文是可以显示了,但是GBK要改成utf_8,还有就是,有的我是用实体类代替form的,那样转换太复杂了,求一个更简易的方法?
一般要保持三个地方统一,JSP编码、class文件编码、数据库编码