关于struts2,mysql,hibernate的开发环境下的中文显示为“问号”的问题总结
2009-07-01 14:27
666 查看
~前天刚开始学Hibernate~一切还比较顺利~但是突然发现插入mysql数据库的中文全都是问号,于是开始上网查解决的办法。我一直以为是自己在MyEclipse的编码字符集不对,于是乎几乎把所有的方法都试了一遍,但是还是问号问号。。。开始自己没有思考为什么会这样,后来我把输入的中文在每个前台页面和每个后台action都输出来看看,结果发现都是正确的。于是,想到了差不多应该是数据库的问题。
于是开始改mysql的字符集。也不知道为什么mysql的默认字符集会是latin1~但我配置mysql的时候明明选择了默认字符集为utf8,但是重启后还是latin1~后来才发现原来是没有勾第三个复选框--自己选择字符集。。我囧死了。。后来改好了~一切OK~漂亮的中文字出来了~我的“心神不宁”也消失了~~以上纯属自己的牢骚,反正在公司这几天也没什么事~没人关心我~自己写篇日记玩着玩呗。。我把关于解决乱码的问题总结了一下~大部分都是网上的前辈的经验~~
1.页面
每个页面上加上 这样在jsp页面里,点右键,查看编码方式则为UTF-8.
也可以把设置myEclipse中默认的contentTyepe。步骤是:windows->preferences->Generl->ContentType.然后设置成UTF-8.一定要update~~
在JSP页面头部加入下面这句话,告诉浏览器应该调用UTF-8的字符集。
2.数据库连接语句
设置characterencoding为UTF-8 如jdbc.mysql.url=jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF8
如果使用Hibernate,那就把所有的配置文件头部的编码格式改成UTF-8。
3.Tomcat
为了保证get/post数据都采用相同的UTF8编码,我们在server.xml中进行了如下设置: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
4. struts2配置
struts2在配置struts.properties文件中加上struts.i18n.encoding=UTF-8 或者在struts.xml里加上<constant name="struts.i18n.encoding" value="UTF-8" />
jsp向action提交数据时出现乱码时,在web.xml加入filter(必须在filterDispatcher之上!!)。
5.数据库(mysql)
可以先输入查询语句SHOW VARIABLES LIKE 'character_set_%';,查看所有的编码是否是UTF-8.
如果不是可以使用Server Instance Config 把默认的字符集设置为utf-8或者修改/MySQL/MySQL Server 5.0/my.ini中的default-character-set=utf8。
于是开始改mysql的字符集。也不知道为什么mysql的默认字符集会是latin1~但我配置mysql的时候明明选择了默认字符集为utf8,但是重启后还是latin1~后来才发现原来是没有勾第三个复选框--自己选择字符集。。我囧死了。。后来改好了~一切OK~漂亮的中文字出来了~我的“心神不宁”也消失了~~以上纯属自己的牢骚,反正在公司这几天也没什么事~没人关心我~自己写篇日记玩着玩呗。。我把关于解决乱码的问题总结了一下~大部分都是网上的前辈的经验~~
1.页面
每个页面上加上 这样在jsp页面里,点右键,查看编码方式则为UTF-8.
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
也可以把设置myEclipse中默认的contentTyepe。步骤是:windows->preferences->Generl->ContentType.然后设置成UTF-8.一定要update~~
在JSP页面头部加入下面这句话,告诉浏览器应该调用UTF-8的字符集。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
2.数据库连接语句
设置characterencoding为UTF-8 如jdbc.mysql.url=jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF8
如果使用Hibernate,那就把所有的配置文件头部的编码格式改成UTF-8。
3.Tomcat
为了保证get/post数据都采用相同的UTF8编码,我们在server.xml中进行了如下设置: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
4. struts2配置
struts2在配置struts.properties文件中加上struts.i18n.encoding=UTF-8 或者在struts.xml里加上<constant name="struts.i18n.encoding" value="UTF-8" />
jsp向action提交数据时出现乱码时,在web.xml加入filter(必须在filterDispatcher之上!!)。
<filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</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>/*</url-pattern> </filter-mapping>
5.数据库(mysql)
可以先输入查询语句SHOW VARIABLES LIKE 'character_set_%';,查看所有的编码是否是UTF-8.
如果不是可以使用Server Instance Config 把默认的字符集设置为utf-8或者修改/MySQL/MySQL Server 5.0/my.ini中的default-character-set=utf8。
相关文章推荐
- 关于struts2,mysql,hibernate的开发环境下的中文显示为“问号”的问题总结
- 关于mac上mysql5.7.13中文显示问号问题
- Linux下hibernate向mysql中插入中文变成问号问题的解决
- 关于SymbianSeries 60开发的中文显示问题
- 关于mysql不能显示中文的问题,简单解决方案~
- [PHP+MySQL开发基础分享]关于PHP会话和网页中文乱码的问题
- 关于Qt移植后环境变量的设置 qt移植到arm中文显示问题解决 实现pc与tiny210 arm开发板 udp通信(续上)
- 关于SQL的char,varchar字段在导出时切断中文字符显示问号或乱码的问题[原创]
- 关于 Hibernate 存储数据到 MySQL 中文乱码的问题
- mysql解决中文是问号的问题+wamp法文显示+wamp不启用
- 关于php+mysql中文显示为问号的解决方法
- 关于mysql中文插入 问号??问题的解决方法!
- 关于hibernate+mysql中文乱码的问题
- VC++ 环境 使用开发GTK+程序的中文显示问题
- 关于Mac安装MySQL和MySQLWorkbench的初始密码,环境配置问题总结
- 关于Qt移植后环境变量的设置 qt移植到arm中文显示问题解决 实现pc与tiny210 arm开发板 udp通信
- 关于 Hibernate3 与 Mysql5.5 连接时出现的中文乱码问题
- .net 里面插入中文到mysql的时候,显示问号乱码问题
- 关于encodeURI两次转码和非两次转码,以及后台中文,前台不显示问题总结
- 关于在Eclipse 开发中针对String类型中文显示的问题