PHP-Mysql編碼問題

這幾天搞了個PHP讀取excel表再讀入Mysql的東西,可是被其中的中文亂碼搞暈了。html

經過上網翻閱很多帖子以後,思路清晰了很多,以此記錄下來學習學習mysql

須要在幾個地方設置編碼爲UTF8web

瀏覽器器端設置 UTF8sql

PHP:數據庫

.在語句最開頭加入 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />瀏覽器

或.在PHP語句中加入 header("Content-Type:text/html;charset=utf-8");學習

讀取Excel表:ui

//$data->SetoutputEncoding("utf-8");編碼

PHPExcel中支持,不用加了spa

Mysql中:

 打開my.ini之後,在[client]和[mysqld]下面均加上default-character-set=utf8,保存並關閉,試過無效

1.因此:建數據庫時設置編碼爲UTF8,該庫中的表默認也就是UTF8編碼了

Create/ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

更改表同理:也能夠在建表語句後面加上 ENGINE=InnoDB DEFAULT CHARSET=utf8; 

查看錶:mysql> show create table tablename;

2.1 在PHP中加入一條 mysql_query("set names utf8") 

Set names utf8  等價於如下三條語句

客戶端:SET character_set_client='utf8';
鏈接器:SET character_set_connection='utf8';
返回值:SET character_set_results='utf8';

2.2 在PHP中加入一條 mysql_qurey("set character set utf8")

至關於2中SET character_set_connection='utf8'; 鏈接數據庫時的編碼

建庫的時候不設置默認編碼之後再改的時候表字段的編碼仍是默認的 Latin1

相關文章
相關標籤/搜索