PHP MySQL亂碼終極解決方案

2021-07-04 20:41:00 字數 1801 閱讀 5029



1. html頁面有 meta 設定為 utf-8  頁面存為utf-8編碼

2. php頁面有 header 設定為utf-8, 頁面存為utf-8編碼

<?php

header("content-type:text/html; charset=utf-8");

?>

3. 資料庫操作之前 mysql_query("set names utf8");

4. mysql中 show variables like 'character_set%';  client,connection,database 均為 utf-8

配置my.ini檔案

在[client]節點下新增 

default-character-set=utf8

在[mysqld]節點下新增

character-set-server=utf8

collation-server=utf8_general_ci  

然後重啟mysql

5. 已經建立好的資料庫及庫中的表要如何更改為utf8

用alter語句(修改資料庫的字符集不會改變原有資料庫表的字符集)

修改資料庫編碼為utf-8

alter database `資料庫名` default character set utf8 collate utf8_general_ci;

修改資料庫表編碼為utf-8

alter table `資料庫表名` default character set utf8 collate utf8_general_ci;

修改庫表字段的編碼為utf-8

alter table `emp` change `name` `name` varchar( 64 ) character set utf8 collate utf8_general_ci;

是將mysql資料庫emp表中 name的字段編碼改為utf8

6. phpmyadmin 登入時中文utf-8

以上情況下. 插入mysql中的中文在phpmyadmin中顯示正常, 自己輸出中文同樣正常.  但是mysql命令列下select資料中文為亂碼.

cmd無法輸出utf-8字元, mysql下設定 set character_set_results = gb2312/gbk;(需要重啟mysql服務以及cmd)

對於新建立的資料庫 設定預設字符集為utf-8

create database if not exists 資料庫名 default charset utf8 collate utf8_general_ci;

對於新建立的資料庫表 設定預設字符集為utf-8

create table `test` (

`id` int(10) not null auto_increment,

`uid` varchar(10) not null default '0',

`regdate` date not null,

`remark` text,

primary key  (`id`)

) engine=innodb  default charset=utf-8 auto_increment=5 ;

7. 用php讀寫資料庫 在連線資料庫之後:

$connection = mysql_connect($host_name, $host_user, $host_pass);

加入兩行:

mysql_query("set character set 'utf8'");//讀庫

mysql_query("set names 'utf8'");//寫庫

php mysql亂碼解決

原理就不羅嗦了 自己 gg一下 也可以 看這裡 解決,自我總結了下 第一步.設定my.ini,紅線部分,其他地方根據自己情況.其實my.ini的設定,無關緊要,因為大多數人都是用虛擬機器,根本就不能設定my.ini web服務提供商也不會說改就幫你去改my.ini,這步可以跳過 mysqld set...

中文亂碼終極解決

1.現象 預發布海外版 後台管理中文顯示亂碼,資料庫中文正常,顯示到頁面後亂碼,從頁面插入資料庫也是亂碼。2.查詢問題 1.先從最基本的檢視 頁面編碼方式 server編碼方式 資料庫 資料表 屬性字段編碼方式都是utf8 2.深入到傳輸資料層面 前端傳輸到server tomcat server傳...

PHP MySql亂碼解決方案

每到課程設計的時候都會累出人命,今年php課程設計適做php精品課程 所踩之坑,接二連三就不一一贅述了。這篇文章的主要目的是說一下怎麼解決php mysql亂碼,下面開始說了。首先要處理的是單純的html頁面,也就是字尾html的檔案。辦法就是增加如下 在 資料庫執行語句mysqli query c...