你先用System打印,看查到数据库前有没乱码 你有没接收参数,如果有要用request.setCharacterEncoding()设置 设置页面编码另外直接修改mysql配置文件my.ini C:\Program Files\MySQL\MySQL Server 5.1\my.ini [client] port=3306 [mysql] default-character-set=gbk 在utf-8编码下,把该项设成GBk,在mysql客户端就可以直接输入命令,否则要先在mysql客户端设置set names GBK;因为不这样设,命令会被当做utf-8编码,可能会出错。改变mysql下的编码 [mysqld] 为mysql服务# The TCP/IP Port the MySQL Server will listen on port=3306 #Path to installation directory. All paths are usually resolved relative to this. basedir="C:/Program Files/MySQL/MySQL Server 5.1/"#Path to the database root datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/Data/"# The default character set that will be used when a new schema or table is # created and no character set is defined default-character-set=utf8 这里把编码改成utf8
default_character_set你怎么gbk,utf8都设置啊! 修改一下数据库的编码 alter database dbname default character set gbk;
20楼的语句执行不了啊 mysql> alter database dbname default character set gbk; ERROR 1 (HY000): Can't create/write to file '.\dbname\db.opt' (Errcode: 2) 我是按照7楼设置的,怎么改啊?崩溃了!
修改my.ini文件
加上
default-character-set=gb2312
你先用System打印,看查到数据库前有没乱码
你有没接收参数,如果有要用request.setCharacterEncoding()设置
设置页面编码另外直接修改mysql配置文件my.ini
C:\Program Files\MySQL\MySQL Server 5.1\my.ini
[client]
port=3306
[mysql]
default-character-set=gbk
在utf-8编码下,把该项设成GBk,在mysql客户端就可以直接输入命令,否则要先在mysql客户端设置set names GBK;因为不这样设,命令会被当做utf-8编码,可能会出错。改变mysql下的编码
[mysqld] 为mysql服务# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 5.1/"#Path to the database root
datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/Data/"# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=utf8
这里把编码改成utf8
要Mysql和jsp页面的编码?
Mysql设为UTF8.jsp页面用gb2312行吗?还是用UTF8?
不够我可以加分,求解决。
show variables like 'character%';
怎么才能把Mysql数据库里的东西回复成中文啊
mysql> show variables like 'character%';
+--------------------------+--------------------------------------------------
-----------+
| 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 | C:\Program Files (x86)\MySQL\MySQL Server 5.0\sha
\charsets\ |
+--------------------------+--------------------------------------------------
-----------+
然后该怎么改啊
按照7楼的也还是乱码
default-character-set=gbk
default-character-set=utf8
然后按照16楼的依然乱码,我把这两行换成gb2312,gbk,utf8试了个遍,都是乱码
现在我的配置是default-character-set=gbk
default-character-set=utf8
显示如下:
mysql> show variables like 'character%';
+--------------------------+----------------------------------------------------
-----------+
| Variable_name | Value
|
+--------------------------+----------------------------------------------------
-----------+
| character_set_client | gbk
|
| character_set_connection | gbk
|
| character_set_database | latin1
|
| character_set_filesystem | binary
|
| character_set_results | gbk
|
| character_set_server | latin1
|
| character_set_system | utf8
|
| character_sets_dir | C:\Program Files (x86)\MySQL\MySQL Server 5.0\share
\charsets\ |
+--------------------------+----------------------------------------------------
修改一下数据库的编码
alter database dbname default character set gbk;
mysql> alter database dbname default character set gbk;
ERROR 1 (HY000): Can't create/write to file '.\dbname\db.opt' (Errcode: 2)
我是按照7楼设置的,怎么改啊?崩溃了!
dbname是你的数据库名称。
再看看处理页面有没有写
request.setCharacterEncoding("GBK");
习惯用表单的时候把 method="post" 比较好吧!
<value>jdbc:mysql:URL?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8</value>
</property>
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 character_set_client =gb2312; set character_set_connection =gb2312; set character_set_database =gb2312; set character_set_results =gb2312; set character_set_server =gb2312; set character_set_system =gb2312; --此处utf-8也可以然后执行:SET collation_server = gb2312_chinese_ci
SET collation_database = gb2312_chinese_ci
SET collation_connection =gb2312_chinese_ci 执行完之后,请检查mysql下每个数据库,表,字段是否都是gb2312,不是则改过来,这样子就不会出现了
......
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
最后这句ENGINE=InnoDB DEFAULT CHARSET=gbk是设置建立的这个表使用的是GBK。下面再看看数据库连接方式上编码需要注意的地方,它在connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/immdb?user=root&password=123456&useUnicode=true&characterEncoding=GBK");
最后的字符编码被指定为GBK。这样才能与数据库统一,不会在传递过程中发生乱码。再看看JSP页面的编码修改位置,位于<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
但是还应该注意,如果在JSP页面传递form或者其他值的时候,有中文,那么,你还需要在JSP页面中加入<% request.setCharacterEncoding("GBK");%>(可能是在接收页面设置,不过我都设置了,也不管那么多了,呵呵)
在servlet中加入request.setCharacterEncoding("GBK");
response.setCharacterEncoding("GBK");