JAVA ,SSH中文及其乱码问题的解决 6大配置点 使用UTF-8编码
来源:互联网 发布:用友软件u8下载 编辑:程序博客网 时间:2024/05/21 09:03
JSP,mysql,tomcat下(基于struts2)中文及其乱码问题的解决 6大配置点 使用UTF-8编码
目前对遇到J2EE 开发中 中文及其乱码问题,参考网上资料做个总结, 主要是6大配置点:
1 struts2配置 2 数据库 3 页面 4 jdbc连接 5 tomcat 6.hibernate配置
以下解决方法不分顺序,大家按照自己的配置对比,同时也欢迎大家补充
1 struts2配置
struts2在配置struts.properties文件中加上struts.i18n.encoding=UTF-8 或者在struts.xml里加上<constant name="struts.i18n.encoding" value="UTF-8" /> 有的朋友说加上struts.locale=zh_CN,但是我的struts.locale为en_GB没有问题.
2 tomcat
为了保证get/post数据都采用相同的UTF8编码,我们在server.xml中进行了如下设置:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />
其中,当当使用IIS作为webserver转发servlet/jsp请求时IIS是通过AJP协议,把请求转发到Tomcat监听的8009端口,所以需要配置端口8009的URIEncoding为UTF-8.
3 页面
每个页面上加上<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> 这样在jsp页面里,点右键,查看编码方式则为UTF-8.
4 jdbc连接
设置characterencoding为UTF-8 如jdbc.mysql.url=jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF8
5. Hibernate 配置
在hibernate.cfg.xml配置文件中加入这些来完成的
- <property name="connection.useUnicode">true</property>
- <property name="connection.characterEncoding">UTF-8</property>
6 数据库
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
- 停止MySQL的运行
/etc/init.d/mysql start (stop) 为启动和停止服务器 - MySQL主配置文件为my.cnf,一般目录为/etc/mysql
- 当我们需要修改MySQL数据库的默认编码时,需要编辑my.cnf文件进行编码修改,在linux下修改mysql的配置文件my.cnf,文件位置默认/etc/my.cnf文件
找到客户端配置[client] 在下面添加
default-character-set=utf8 默认字符集为utf8
在找到[mysqld] 添加
default-character-set=utf8 默认字符集为utf8
init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)
修改好后,重新启动mysql 即可,重新查询数据库编码可发现编码方式的改变:
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
此方法用于标准mysql版本同样有效,对于/etc/my.cnf文件,需要从mysql/support-files的文件夹cp my-large.cnf一份到/etc/my.cnf
MySQL基础配置之mysql的默认字符编码的设置(my.ini设置字符编码)
MySQL的默认编码是Latin1,不支持中文,那么如何修改MySQL的默认编码呢,下面以UTF-8为例来说明
需要注意的是,要修改的地方非常多,相应的修改方法也很多。下面是一种最简单最彻底的方法:
一、Windows系统下面
1、中止MySQL服务
2、在MySQL的安装目录下找到my.ini,如果没有就把my-medium.ini复制为一个my.ini即可
3、打开my.ini以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭(mysqld中增加如果出错,可以试 character-set-server=utf8)
4、启动MySQL服务
二、Linux系统下面
1、中止MySQL服务(bin/mysqladmin -u root shutdown)
2、在/etc/下找到my.cnf,如果没有就把MySQL的安装目录下的support-files目录下的my-medium.cnf复制到/etc/下并改名为my.cnf即可
3、打开my.cnf以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭
4、启动MySQL服务(bin/mysqld_safe &)
非常简单,这样的修改一劳永逸,今后MySQL一切相关的默认编码均为UTF-8了,创建新表格的时候无需再次设置
需要注意的是,当前数据库中已经存在的数据仍保留现有的编码方式,因此需要自行转码,方法在网上有很多,不再赘述
- JAVA ,SSH中文及其乱码问题的解决 6大配置点 使用UTF-8编码
- JSP,mysql,tomcat下(基于struts2)中文及其乱码问题的解决 5大配置点 使用UTF-8编码
- 我的myeclipse,中文编码配置(UTF-8),有效解决中文乱码问题
- smarty截取中文字符乱码问题的解决支持utf-8编码
- 解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)——ubuntu环境设置默认是utf-8,文件编码可使用Encodersoft批量转换
- 解决页面中文的乱码问题,使用过滤器为所有页面配置编码格式,解决大部分的中文乱码问题
- 中文乱码问题(编码格式utf-8)
- java utf-8编码连接utf-8 mysql数据库,解决中文乱码
- JSP 即使使用UTF-8编码,仍然出现中文乱码问题的原因
- C# Asp.net 前台使用utf-8编码传递中文参数 后台接收乱码的问题
- tomcat 设置UTF编码 解决中文接收乱码问题
- ZF解决中文UTF-8乱码问题
- 解决HTML5 UTF-8 中文乱码问题
- PHP echo utf-8 中文 乱码问题的解决
- 关于在MySQL 、 VC、 JSP 中使用UTF-8解决中文生僻字乱码的问题
- MyEclipse解决中文乱码问题,统一为UTF-8,及其他设置
- dojo+JBoss7设置URI编码为UTF-8,解决传参中文乱码问题
- 解决utf-8编码页面cookie保存中文时乱码问题
- Sliverlight 将页面导出各种图片
- [JAVA]编码GBK的不可映射字符
- ORACLE数据类型
- foreach循环
- rpm包如何制作-个人经验
- JAVA ,SSH中文及其乱码问题的解决 6大配置点 使用UTF-8编码
- 智力杠杆
- android 监听短信数据库,制作短信控制工具,控制别人的手机!!(一)
- 自己的计划,欢迎大家监督
- TextView中的连续空格只显示一个的解决方法
- java中基于TaskEngine类封装实现定时任务
- 二叉树的操作汇总
- HDU 1892 二维树状数组
- 如何打一个rpm包