溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php mysql中文亂碼怎么辦

發布時間:2020-11-06 10:49:22 來源:億速云 閱讀:147 作者:小新 欄目:編程語言

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

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

PHP與Mysql中中文亂碼問題

當用MySQL搭建數據庫的時候,有時會出現一些亂碼問題,下面是一些解決方法。

問題一:數據庫或表中的編碼格式不正確

在創建數據庫時,用以下代碼來進行創建:

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

建表的時候:

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個設置好了,Mysql基本就不會出問題了,即建庫和建表時都使用相同的編碼格式。

如果已經創建了數據庫可以用以下方法:

1.查看默認的編碼格式:

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個來確定,可以使用set names utf8,set names gbk設置默認的編碼格式;通過workbench可以更加簡單地設置數據庫的編碼。

執行SET NAMES utf8的效果等同于同時設定如下:

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

2.查看test數據庫的編碼格式:

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

3.查看yjdb數據表的編碼格式:

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’);即可

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女