mysql 乱码问题终结
来源:互联网 发布:淘宝浦发信用卡额度 编辑:程序博客网 时间:2024/05/19 23:15
直接说干的 ,废话就不说了哈
1.将C:/Program Files/MySQL/MySQL Server 5.1/my.ini文件,改成这样:
主要是改里边的latin1改为gbk
[mysqld]
default-character-set=gbk
[mysql.server]
default-character-set=GBK
[mysql.server]
user=mysql
basedir="C:/Program Files/MySQL/MySQL Server 5.1/"
default-character-set=gbk
注意:就是加入了一句default-character-set=gbk,后面的[mysql.server]是要手动加进去的。
修改后重新启动mysql
查看系统的字符集用下面的命令:
1 mysql> SHOW VARIABLES LIKE 'character_set_%';
2 +--------------------------+-----------------------------------------+
3 | Variable_name | Value |
4 +--------------------------+-----------------------------------------+
5 | character_set_client | gbk |
6 | character_set_connection | gbk |
7 | character_set_database | gbk |
8 | character_set_filesystem | binary |
9 | character_set_results | gbk |
10 | character_set_server | gbk |
11 | character_set_system | utf8 |
12 | character_sets_dir | E:/usr/MySQL Server 5.0/share/charsets/ |
13 +--------------------------+-----------------------------------------+
14 8 rows in set (0.00 sec)
15
可以看到,我的这几个变量都是一致的。但如果不一致呢?网上许多教程告诉你“你set names下就解决了”。
那么set names是什么呢? set names实际上就是同时设置了 character_set_client ,character_set_connection和 character_set_results 这三个系统变量。
例如在mysql命令行上输入 set names 'gbk' 命令等同于:
SET character_set_client = gbk;
SET character_set_connection = gbk;
SET character_set_results = gbk;
SET character_set_server =gbk;
mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | gbk|
| collation_database | gbk|
| collation_server | gbk |
+----------------------+-------------------+
3 rows in set (0.02 sec)
如果不是 用set names修改成一致的。
二、乱码解决方案
要解决乱码问题,首先必须弄清楚数据库用什么编码。如果没有指明,将是默认的latin1。
用得最多的应该是这3种字符集 gb2312,gbk,utf8。
如何去指定数据库的字符集呢?下面也gbk为例
【在MySQL Command Line Client创建数据库 】
mysql> CREATE TABLE `mysqlcode` (
-> `id` TINYINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-> `content` VARCHAR( 255 ) NOT NULL
-> ) TYPE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci;
Query OK, 0 rows affected, 1 warning (0.03 sec)
mysql> desc mysqlcode;
+---------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-----------------------+------+-----+---------+----------------+
| id | tinyint(255) unsigned | NO | PRI | | auto_increment |
| content | varchar(255) | NO | | | |
+---------+-----------------------+------+-----+---------+----------------+
2 rows in set (0.02 sec)
其中后面的TYPE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci;
就是指定数据库的字符集,COLLATE (校勘),让mysql同时支持多种编码的数据库。
当然也可以通过如下指令修改数据库的字符集
alter database da_name default character set 'charset'
修改表
alter table 'tb_name default character set gbk COLLATE gbk_bin;
修改字段的编码:
alter table 'tb_name change 'tb_id' 'tb_id' varchar(20) character set gbk COLLATE gbk_bin NOT NULL;
显示表字段属性:
SHOW CREATE TABLE TB_NAME;
- mysql 乱码问题终结
- mysql中文乱码终结
- mysql中文乱码终结
- mysql中文乱码终结
- Mysql中文乱码问题解决终结
- mysql中文乱码终结解决
- 终结PHP中文乱码的问题
- Mysql无法远程连接问题终结版
- Utf-8和Gb2312乱码问题的终结
- 终结解决Java Web开发过程中的中文乱码问题
- WEB项目 乱码终结
- JSP乱码终结
- 终结中文乱码
- 乱码终结者
- mysql数据库乱码问题
- MySQL的乱码问题
- mysql 中文乱码问题
- MySql 中文乱码问题,:
- 孤立点分析
- 基于Delphi的三层数据库系统的实现方法
- 选择一条记录:single 、 up to 1 rows
- VC6.0循环语句
- override和overload
- mysql 乱码问题终结
- 如何利用js得到h:selectOneMenu所选中的label值或value值
- sysctl.conf 配置详解及最佳方案(多贴合集,请谨慎参考)
- 一句话总结GOF的23种设计模式
- 如何设置MailMessage的return-path?
- WinCE5.0 PB中Platform Settings各选项的含义介绍
- 最完整的sysctl.conf优化方案
- 中国最完整的sysctl.conf优化方案
- Hibernate缓存管理