1,用的mysql数据库5.0,怎莫设置数据库的编码。
2,在程序中如何转换。
查了一下资料,基础比较薄弱,哪位能详细说下。在jsp中,servlet中,数据库中如何转换。有好的文章推荐下。多谢
2,在程序中如何转换。
查了一下资料,基础比较薄弱,哪位能详细说下。在jsp中,servlet中,数据库中如何转换。有好的文章推荐下。多谢
解决方案 »
- JAVA显示当前时间的代码,请问哪里出错了,显示的时候和当前时间不一样! 谢谢!
- 大俠們看下報錯,
- 请问是是什么问题,具体请看图片左下角提示
- 求SmartUpload组件下载...
- 两百分相送!!(语音聊天)在线等!!!!
- 通过JSP页面添加至数据库中的中文,在数据库中怎么会显示为乱码呢?
- 文件保存的问题
- 急!!!!急!!!!
- 什么意思------------<jsp:setProperty name="PROF" property="*" />
- 关于JSP的开发工具的请教.
- 关于在Log4j中使用JDBCAppender时出现死循环的问题
- 一个全新的WEB解决方案,java+js实现,快速构建b/s结构的管理信息系统
使用过滤器,如果所有请求都经过一个Servlet控制分配器,那么使用Servlet的filter执行语句,将所有来自浏览器的请求(request)转换为UTF-8,因为浏览器发过来的请求包根据浏览器所在的操作系统编码,可能是各种形式编码。关键一句:
request.setCharacterEncoding("UTF-8")。
网上有此filter的源码,Jdon框架源码中com.jdon.util.SetCharacterEncodingFilter
需要配置web.xml 激活该Filter。
在JSP头部声明:<%@ page contentType="text/html;charset= UTF-8" %>。
在Jsp的html代码中,声明UTF-8:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
设定数据库连接方式是UTF-8。例如连接MYSQL时配置URL如下:
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
一般数据库都可以通过管理设置设定UTF-8
其他和外界交互时能够设定编码时就设定UTF-8,例如读取文件,操作XML等。
笔者以前在Jsp/Servlet时就采取这个原则,后来使用Struts、Tapestry、EJB、Hibernate、Jdon等框架时,从未被乱码困扰过,可以说适合各种架构。希望本方案供更多初学者分享,减少Java/J2EE的第一个拦路虎,也避免因为采取一些临时解决方案,导致中文问题一直出现在新的技术架构中。
还是写一个过滤器方便呀!!!
看看这个帖子吧!!
http://community.csdn.net/Expert/TopicView1.asp?id=5500584
<%@ page contentType="text/html;charset= UTF-8" %>
增加了一个过滤器:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;public class EncodingFilter implements Filter{
private String encoding="UTF-8";
public void init(FilterConfig config)throws ServletException
{
String s = config.getInitParameter("Encoding");
if(s!=null)
{
this.encoding=s;
}
}//init
public void doFilter(ServletRequest req,ServletResponse resp,FilterChain chain)throws ServletException,IOException
{
req.setCharacterEncoding(encoding);
resp.setCharacterEncoding(encoding);
chain.doFilter(req,resp);
}
public void destroy()
{
this.encoding = "UTF-8";
}}
在web.xml中作了配置:
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>addressbook.filter.EncodingFilter</filter-class>
<init-param>
<param-name>Encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
我用的是struts,IDE为eclipse,数据库为mysql,eclipse中我把编码改为UTF-8,mysql我直接修改的my.ini文件,默认的是latin1,改为UTF-8.
现在问题是index.jsp没有问题了。我一转到logon.jsp报错,logon.jsp中包含的其他的jsp页面我统统都加了<%@ page contentType="text/html;charset= UTF-8" %>,logon.jsp对应有一个form,还有一个action,现在是打不开logon.jsp,我在index.jsp中用的link转的。
[jsp] - servlet jsp 的Servlet.service()出现错误<org.apache.jasper.JasperException: 没有支持的编码: UTF-8
请问是什莫地方我忽落了吗
将
<%@ page contentType="text/html;charset= UTF-8" %>
改为
<%@ page contentType="text/html;charset= GB2312" %>
==============
太笼统了啊。应该有更简单的解决方法吧。将
<%@ page contentType="text/html;charset= UTF-8" %>
改为
<%@ page contentType="text/html;charset= GB2312" %>
---------------------
我要用utf-8编码