溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php mysql中文亂碼怎么辦

發(fā)布時(shí)間:2020-11-06 10:49:22 來源:億速云 閱讀:118 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)php mysql中文亂碼怎么辦的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。

php mysql中文亂碼的解決辦法:1、修改數(shù)據(jù)庫或表中的編碼格式;2、在PHP語句中加入“mysqli_query(“set names utf8”);”;3、在客戶端中加入“header(‘charset=utf-8’);”即可。

PHP與Mysql中中文亂碼問題

當(dāng)用MySQL搭建數(shù)據(jù)庫的時(shí)候,有時(shí)會(huì)出現(xiàn)一些亂碼問題,下面是一些解決方法。

問題一:數(shù)據(jù)庫或表中的編碼格式不正確

在創(chuàng)建數(shù)據(jù)庫時(shí),用以下代碼來進(jìn)行創(chuàng)建:

CREATE DATABASE `test`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';

建表的時(shí)候:

CREATE TABLE `table_name` (
id varchar(40) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`UserID` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

這3個(gè)設(shè)置好了,Mysql基本就不會(huì)出問題了,即建庫和建表時(shí)都使用相同的編碼格式。

如果已經(jīng)創(chuàng)建了數(shù)據(jù)庫可以用以下方法:

1.查看默認(rèn)的編碼格式:

mysql> show variables like "%char%";  
+--------------------------+---------------+  
| Variable_name | Value |  
+--------------------------+---------------+  
| character_set_client | gbk |  
 character_set_connection | gbk |  
| character_set_database | utf8 |  
 character_set_filesystem | binary |  
| character_set_results | gbk |  
| character_set_server | utf8 |  
| character_set_system | utf8 |  
+--------------------------+-------------+

注:以前2個(gè)來確定,可以使用set names utf8,set names gbk設(shè)置默認(rèn)的編碼格式;通過workbench可以更加簡(jiǎn)單地設(shè)置數(shù)據(jù)庫的編碼。

執(zhí)行SET NAMES utf8的效果等同于同時(shí)設(shè)定如下:

SET character_set_client='utf8';  
SET character_set_connection='utf8';  
SET character_set_results='utf8';

2.查看test數(shù)據(jù)庫的編碼格式:

mysql> show create database test;  
+------------+------------------------------------------------------------------------------------------------+  
| Database | Create Database |  
+------------+------------------------------------------------------------------------------------------------+  
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ |  
+------------+------------------------------------------------------------------------------------------------+

3.查看yjdb數(shù)據(jù)表的編碼格式:

mysql> show create table yjdb;  
| yjdb | CREATE TABLE `yjdb` (  
`sn` int(5) NOT NULL AUTO_INCREMENT,  
`type` varchar(10) NOT NULL,  
brc` varchar(6) NOT NULL,  
`teller` int(6) NOT NULL,  
`telname` varchar(10) NOT NULL,  
`date` int(10) NOT NULL,  
`count` int(6) NOT NULL,  
`back` int(10) NOT NULL,  
PRIMARY KEY (`sn`),  
UNIQUE KEY `sn` (`sn`),  
NIQUE KEY `sn_2` (`sn`)  
) ENGINE=MyISAM AUTO_INCREMENT=1826 DEFAULT CHARSET=gbk ROW_FORMAT=DYNAMIC |

問題二:PHP與Mysql傳輸編碼不兼容

需要在PHP語句中加入

mysqli_query(“set names utf8”);

mysql set names 解決亂碼的原因:

http://blog.csdn.net/zsmj_2011/article/details/7943734

問題三:客戶端解碼問題:

加入header(‘charset=utf-8’);即可

感謝各位的閱讀!關(guān)于php mysql中文亂碼怎么辦就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI