導航:首頁 > 編程語言 > php資料庫utf8

php資料庫utf8

發布時間:2022-09-02 06:16:43

php新手請教 關於 如何將資料庫編碼 改為utf8

出現亂碼了嗎,改變一下資料庫,找一下歷史記錄,復制記錄裡面的gb2312 也許可以

❷ thinkphp5 連訪問資料庫時報錯utf-8編碼錯誤

thinkphp5連訪問資料庫時報錯utf-8編碼錯誤,出現中文亂碼的原因就是字元編碼不統一,出現中文亂碼需要添加如下代碼。

在D:phpStudyPHPTutorialMySQL下的my.ini中的mysqld下加如下語句:

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

示例代碼如下:

(2)php資料庫utf8擴展閱讀:

thinkphp5 連訪問資料庫時報錯utf-8編碼錯誤可能出錯的地方:

1. 代碼文件(判斷查看文件編碼的最簡單的辦法是:用記事本打開,然後點擊「另存為」,出現的窗口下方有「編碼」字樣,若不是你想要的編碼,改為你的編碼後保存覆蓋原來的文件即可)。

2. html 文件頭部應加上 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ,把 utf-8 改為你要同意的編碼即可。

3. 資料庫連接代碼應選擇對應字元編碼,mySql 的選擇字元編碼的代碼為:mysql_query("SET NAMES 'utf-8';"); 其他資料庫的代碼請自行查詢。

4. 後台程序代碼 php 需要註明字元編碼,header('Content-Type:text/html。

❸ php顯示資料庫里的中文亂碼.。ps:資料庫和php顯示都設置了utf8,為什麼還會顯示亂碼求解答!!

原因:
這個是因為你的瀏覽默認解析編碼不是 UTF-8,這種情況瀏覽器他不知道你的文字要顯示 什麼編碼。
解決方案:
要麼設置瀏覽器默認編碼為 UTF-8
在輸出列印前,先輸出 <meta charset="utf-8">來告訴瀏覽器你想要使用的編碼方式。
栗子:

echo '<meta charset="utf-8">';//將這行放到第一行輸出

echo "<tr><><tr/>";//

❹ PHP使用utf8插入中文數據到MySQL中文顯示會亂碼怎麼辦

資料庫使用utf8編碼,需要在操作的過程中統一全部編碼。

1.資料庫默認編碼

CREATEDATABASE`test`DEFAULTCHARACTERSET'utf8';

2.表默認編碼

CREATETABLE`tablea`(
`id`INTNOTNULLAUTO_INCREMENT,
`title`VARCHAR(100)NULL,
)ENGINE=InnoDBDEFAULTCHARSET=utf8;

3.欄位默認編碼

默認情況下,欄位的編碼同表的編碼,但是如果修改了表的編碼,欄位編碼不會同步修改,需要手動修改

這里修改編碼測試我將utf8 改為 gb2312 ,僅用於觀察修改後的情況(實際使用中可能是將gbk修改為utf8)

ALTERTABLE`test`.`tablea`CHARACTERSET=gb2312;

--修改表編碼後,查看建表語句
showcreatetable`tablea`;

--可以看到輸出的建表語句中欄位單獨設置了編碼
CREATETABLE`tablea`(
`id`INTNOTNULLAUTO_INCREMENT,
`title`VARCHAR(100)CHARACTERSETutf8NULL,
)ENGINE=InnoDBDEFAULTCHARSET=gb2312;

--需要手動修改欄位編碼
ALTERTABLE`tablea`
CHANGECOLUMN`title``title`VARCHAR(100)CHARACTERSET'gb2312'NULLDEFAULTNULL;

4.當前資料庫連接的編碼

連接數時設置編碼

//PDO連接
$db=newPDO('mysql:host=myhost;dbname=test','login','password',
array(PDO::MYSQL_ATTR_INIT_COMMAND=>'SETNAMES'UTF8'')
);

//mysqli連接
$link=mysqli_connect("127.0.0.1","my_user","my_password","test");
mysqli_query($link,"SETNAMES'utf8';");

通過以上幾步操作,基本可以保證資料庫使用過程中不會出現亂碼

❺ PHP+mysql中utf-8顯示亂碼

。。。那是因為你的文件保存成了
GB2312編碼
你把文件保存成UTF-8看下
文件默認編碼是和IDE
有關的。
你從資料庫獲取的數據是
通過set
names
utf8
這個沒問題
你META設置的是UTF-8
瀏覽器也知道用UTF-8
去瀏覽
也沒問題
問題是你這個文件本身的編碼要是UTF-8才行。

❻ php與資料庫中,都是用的utf8編碼,但還是亂碼

你的php代碼還有請求頭的編碼和響應頭的編碼也都要統一成utf8,只控制資料庫的編碼不行的

❼ 我PHP設置的是UTF-8,資料庫設置的是UTF8-general-ci,從頁面發送數據給資料庫後資料庫顯示的是亂碼是為啥

試試把下面類似語句放到連接語句之後

mysql_query("SETNAMESUTF8");

或 PDO

$dbh->exe("SETNAMESUTF8");

用 SET NAMES UTF8 校正一下連接編碼

因為PHP 連接資料庫的過程中會經過三次編碼轉換,比如輸出的的時候

MySql Server(UTF-8) -> PHP Connection( Latin1) -> UTF8頁面的Result(UTF-8) 這時兩種編碼不兼容則產生亂碼。

❽ 如何用php設置utf-8編碼

在你的源文件找到<meta http-equiv="content-type" content="text/html;charset=utf-8">charset= 後面接的就是編碼,你全部改了就可以了。如果你改了之後變成亂碼的話,那你就只能先建一個utf-8編碼的網頁,把相應的內容重新輸入進去。

❾ php訪問mysql資料庫時,讀出的數據是問號!如何解決,設置的編碼方式是utf-8

兩邊入手,
PHP,需要設置頁面編碼,加一行代碼:
header('Content-Type:text/html;charset=utf-8');
這樣就把輸出編碼改為了UTF-8
但是,MySQL也要設置,那就是連接到資料庫之後再加一行
mysql_query("SET
NAMES
`UTF-8`");
即可
當然,你得保證你的資料庫的字元集是UTF-8
如果仍然出錯,那就說明資料庫的字元集配置有問題

❿ PHP顯示MySQL數據亂碼,字元集設置都是UTF8,資料庫也是UTF8,一直找不到問題在哪裡,代碼見詳細,求大神

php+mysql的utf-8中文亂碼問題的解決方法
問題匯總:
1.mysql資料庫默認的編碼是utf8,如果這種編碼與你的PHP網頁不一致,可能就會造成MYSQL亂碼.
2.MYSQL中創建表時會讓你選擇一種編碼,如果這種編碼與你的網頁編碼不一致,也可能造成MYSQL亂碼.
3.MYSQL創建表時添加欄位是可以選擇編碼的,如果這種編碼與你的網頁編碼不一致,也可能造成MYSQL亂碼.
4.用戶提交頁面的編碼與顯示數據的頁面編碼不一致,就肯定會造成PHP頁面亂碼.
5.如用戶輸入資料的頁面是big5碼, 顯示用戶輸入的頁面卻是gb2312,這種100%會造成PHP頁面亂碼.
6.PHP頁面字元集不正確.
7.PHP連接MYSQL資料庫語句指定的編碼不正確.
使用mysql+php產生亂碼的原因都了解得很清楚了,那麼解決就不困難了.
針對不同問題的解決方法:
1.mysql資料庫默認的編碼是utf8,如果這種編碼與你的PHP網頁不一致,可能就會造成MYSQL亂碼.
修改資料庫編碼,如果是資料庫編碼不正確,可以在phpmyadmin 執行如下命令:
Alter DATABASE 'test' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin

以上命令就是將test資料庫的編碼設為utf8.
2.MYSQL中創建表時會讓你選擇一種編碼,如果這種編碼與你的網頁編碼不一致,也可能造成MYSQL亂碼.
修改表的編碼:
Alter TABLE 'category' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin

以上命令就是將一個表category的編碼改為utf8.
3.MYSQL創建表時添加欄位是可以選擇編碼的,如果這種編碼與你的網頁編碼不一致,也可能造成MYSQL亂碼.
修改欄位的編碼:
Alter TABLE 'test' CHANGE 'dd' 'dd' VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL

以上命令就是將test表中 dd的欄位編碼改為utf8.
4.用戶提交頁面的編碼與顯示數據的頁面編碼不一致,就肯定會造成PHP頁面亂碼.
如果是這種情況容易解決,只需檢查下頁面,修改源文件的charset即可.
5.如用戶輸入資料的頁面是big5碼, 顯示用戶輸入的頁面卻是gb2312,這種100%會造成PHP頁面亂碼.
這種情況也是修改頁面charset即可.
6.PHP頁面字元集不正確.
為了避免PHP頁面亂碼的發生,PHP頁面開始第一句
header("content-type:text/html; charset=utf-8");

//強行指定頁面的編碼,以避免亂碼

7.PHP連接MYSQL資料庫語句指定的編碼不正確.
在連接資料庫的語句中.
mysql_connect('localhost','user','password');

mysql_select_db('my_db');
mysql_query("set names 'utf8'"); //select 資料庫之後加多這一句

閱讀全文

與php資料庫utf8相關的資料

熱點內容
二戰中的加密技術 瀏覽:514
美逛app如何建群 瀏覽:818
iphone用什麼app3d掃描 瀏覽:288
冠生園蔥油壓縮餅干 瀏覽:502
Linux庫文件安裝 瀏覽:224
解壓玩具黑猩猩 瀏覽:966
單片機中斷實驗程序注釋 瀏覽:694
安卓手機下什麼軟體連電腦 瀏覽:724
最新小電影網站 瀏覽:784
穿越張學銘系統小說 瀏覽:268
陳龍跟外國孩子演過的電影 瀏覽:887
韓國唯美愛情電影 女主角絕症 瀏覽:415
python經典庫 瀏覽:840
善良小夷子女演員 瀏覽:973
大奶女電影版 瀏覽:653
汽車遙控編程器 瀏覽:784
方舟在伺服器如何發全體文字 瀏覽:346
一部很多女子格鬥的電影 瀏覽:770
外國大胸美女電影推薦 瀏覽:208
大尺很色床戲電影 瀏覽:432