Mysql数据库乱码与编码问题筛查_MySQL

WBOY
풀어 주다: 2016-06-01 13:29:39
원래의
1139명이 탐색했습니다.

bitsCN.com

Mysql数据库乱码与编码问题筛查

 

最近接连遇到数据库编码问题,让你的系统本来像个美丽的姑娘却忽然发现她不识字一样难受,其实很多时候是编码的问题,而mysql(特别地)设计编码的地方很多,在这里做一个筛查:

 

1 mysql编码

 

用下面的命令可以查看mysql当前的各种默认编码:

 

showvariables like 'character/_set/_%'; 可以看到目前mysql的默认编码;showvariables like 'collation_%';
로그인 후 복사

my.cnf中设置对应的编码:

[client]default-character-set=utf8[mysqld]collation_server = utf8_general_cicharacter_set_server = utf8[mysql]default-character-set=utf8[mysqldump]default-character-set=utf8
로그인 후 복사

2 数据库编码:

CREATE DATABASE IF NOT EXISTS my_db DEFAULT CHARSET utf8COLLATE utf8_general_ci;
로그인 후 복사

3. 数据表编码

/*!40101SET @saved_cs_client     =@@character_set_client */;/*!40101SET character_set_client = utf8 */;CREATETABLE `access` (  `id` int(8) unsigned NOT NULL AUTO_INCREMENT,  `role_id` smallint(6) unsigned NOT NULL,  `node_id` smallint(6) unsigned NOT NULL,  PRIMARY KEY (`id`),  KEY `nodeId` (`node_id`))ENGINE=MyISAM AUTO_INCREMENT=364 DEFAULTCHARSET=utf8;/*!40101 SET character_set_client = @saved_cs_client */;
로그인 후 복사

4. 转存的时候

有时候需要转存数据库,但是好好的数据库转到新库就乱码了,你可能需要:

#mysqldump --default-character-set utf8 -u root -pmypass mydb> mydb.sql
로그인 후 복사

5. 查询的时候

有时候,虽然mysql、数据库、数据表以及导出的数据sql文件编码都没问题,但是query出来仍然出现乱码,可能是因为,在query的时候也需要设置编码,函数名称大同小异,在php+mysql中是:

mysql_query('set names utf8');
로그인 후 복사

 

 

以上。

bitsCN.com
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!