自己看吧我是看了无数的帖子才把我的整好的。希望没有下次了
编码问题:
web的jdbc配置问题:
url=jdbc:mysql://[ip]:[port]/[db]?
useUnicode=true&characterEncoding=gb2312
页面的编码设置:
<%@ page contentType="text/html;
charset=gb2312"%>
web.xml中过滤器的编码设置问题:
<filter>
<filter-
name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingF
ilter
</filter-class>
<init-param>
<param-
name>encoding</param-name>
<param-
value>gb2312</param-value>
</init-param>
<init-param>
<param-
name>forceEncoding</param-name>
<param-value>true</param
-value>
</init-param>
</filter>
<filter>
<filter-mapping>
<filter-
name>encodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
最后还要保证数据库的配置正确:
查看系统的字符集和排序方式的设定可以通过下面的两
条命令:
mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+--------------------
--------+
| Variable_name | Value |
+--------------------------+--------------------
--------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/
|
+--------------------------+--------------------
--------+
7 rows in set (0.00 sec)
mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)
SET NAMES 'gb2312';
它相当于下面的三句指令:
SET character_set_client = gb2312;
SET character_set_results = gb2312;
SET character_set_connection = gb2312;
不过这样改的好像是当前与服务器的连接的编码,关掉与
server的连接再新开一连接还是latin1,要改掉服务器
的配置就需要先shutdown了MySQL,然后
修改
1:/etc/my.cnf文件(LINUX),改成这样:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
default-character-set=gb2312(如果没有这行,手动加
上,因为没有的话意思是默认使用latin1)
2:windows:C:/Program Files/MySQL/MySQL Server
5.0/my.ini
[client]
port=3306
[mysql]
default-character-set=gb2312
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306
default-character-set=gb2312
net stop mysql
net start mysql
启动以后再看就是
mysql> show variables like 'chara%';
+--------------------------+--------------------
--------------------------------
-----+
| Variable_name | Value
|
+--------------------------+--------------------
--------------------------------
-----+
| character_set_client | gb2312
|
| character_set_connection | gb2312
|
| character_set_database | gb2312
|
| character_set_filesystem | binary
|
| character_set_results | gb2312
|
| character_set_server | gb2312
|
| character_set_system | utf8
|
| character_sets_dir | C:/Program
Files/MySQL/MySQL Server 5.0/share/chars
ets/ |
+--------------------------+--------------------
--------------------------------
-----+
从前到后所有的都配好了应该就ok了,反正我的现在是
ok了
要是想用utf-8什么的也要保证前后都一致,可以去试下
。
本文详细介绍了如何解决MySQL数据库中的编码问题,包括配置web应用的JDBC连接、设置页面编码、调整web.xml中的过滤器参数以及确保数据库配置正确等方面的内容。
1019





