又遇到乱码问题,这个编码问题有时候真是让人头大。找了半天都找不出来哪里出了问题,页面和数据库均是使用utf8编码,但是还是出现了乱码。直接在命令行下向数据库插入中文数据时不会出现乱码,在程序中使用代码插入时会出现乱码,控制台中打印出来数据没有乱码,没搞清楚哪里出了问题。通过查找资料最终将乱码问题解决,但是还有些不明白问题出在哪里。
通过在数据库连接url中加入?useUnicode=true&characterEncoding=UTF-8解决问题:
applicationContext.xml
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/cms?useUnicode=true&characterEncoding=UTF-8" />
<property name="username" value="root" />
<property name="password" value="" />
</bean>
我的处理编码的filter:
public class EncodingFilter implements Filter {
private FilterConfig config;
private String charset = "UTF-8";
public void init(FilterConfig filterconfig) throws ServletException {
config = filterconfig;
String s = config.getInitParameter("encoding");
if (s != null) {
charset = s;
}
}
public void destroy() {
config = null;
}
public void doFilter(ServletRequest servletrequest,
ServletResponse servletresponse, FilterChain filterchain)
throws IOException, ServletException {
servletrequest.setCharacterEncoding(charset);
servletresponse.setCharacterEncoding(charset);
filterchain.doFilter(servletrequest,servletresponse);
}
}
经测试filter确实被执行了。
数据库是使用utf8编码:
jsp页面和所有Java文件都是使用的utf8编码。
没看出问题具体出现在哪一点,目前有点赶时间,先把问题解决了,有时间的好好研究一下这个编码问题。遇到很多次了,还不能小看这个编码问题。上次在程序中使用utf8编码的url地址访问windows服务器上的资源文件,出现404,改用gbk就能够访问了。还有一次发现页面在低版本chrome下出现部分css失效的问题,但是在ie和高版本的chrome中又没问题,当时还以为是css兼容性问题,后来发现失效的部分正是css文件中出现中文注释之后的样式,将中文注释去掉,则能够正常显示了。将css文件编码改为和页面编码相同(utf8)问题就解决了。还有页面之间中文参数传递时的编码和解码问题,搞web开发跟编码打交道的时间真多,有时候稍不注意就弄出乱码了。
分享到:
相关推荐
向sql server数据库插入中文时显示乱码
解决两个问题:vs自带数据库sql server的中文插入乱码问题、查找当前数据库名 (查找数据库名在文章中间,自己往下翻吧,不单拎出来了) vs自带数据库sql server的中文插入乱码问题: 如图所示,我插入表的中文变成...
sqlite数据库存取中文乱码的全部解决方案(包括其它数据库oracle+sqlserver+mysql) 数据库的连接方式、数据库里存放数据的字体编码、所选编程语言的缺省字体编码。如果在编程中遇到不能正确显示中文时、、、、
PB9及以下的版本对UNICODE的支持不好,向非中文的数据库插入中文的字符后,第三方软件查看则是乱码。本文利用windows的API函数,很好的解决了向非中文的数据库插入中文的字符的问题,并在项目上应用。
主要介绍了Java向数据库插入中文出现乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
解决大部分数据插入数据库出现乱码的情况,包括oracle数据库,MYsql等
NULL 博文链接:https://441415.iteye.com/blog/986178
python开发web项目,使用flask_sqlachemy连接db2,写入数据库出现中文乱码
本文档为本人学习过程中遇到的一些问题,以及对问题的解决思路,有意者请下载。解决cmd中数据库插入中文数据出错以及中文乱码问题。
主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
个人总结了遇到使用Mysql数据库插入中文时产生乱码问题的解决方法
NULL 博文链接:https://joinyo.iteye.com/blog/1947696
但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下面就来介绍一下如何彻底解决数据库中文乱码情况。 1、中文乱码 1.1、中文乱码 create table user(name varchar(11)); # 创建user表 insert...
用C#操作mysql时, 插入数据中文都是乱码,只显示问号,数据库本身使用的是utf-8字符
SQL-SERVER-64位配置ORACLE连接-中文乱码问题
hibernate插入数据库乱码的解决方式,折腾了好久,总结出来供大家分享
Kettle推送数据到Mysql数据库表时乱码
大家在使用PHPmyadmin把mysql数据库导出导入的时候都遇到过中文乱码的问题,尤其是网站迁移的过程中,只有把这个中文乱码的问题解决好了,你才能把mysql数据库玩熟玩好。
使用ODBC对数据库时插入数据库中包含中文字符串的数据提交后,再去查询插入的中文字符串,显示中文字符串部分是乱码
主要为大家详细介绍了java向mysql插入数据乱码问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下