PHP執行SQL並將返回資料顯示到網頁上為什麼漢字會變成問號

2021-05-02 04:01:02 字數 1547 閱讀 6281

1樓:匿名使用者

是字元編碼問題

mysql字元編碼有四個級別 伺服器級,資料庫級,表級,欄位級.前三種均為預設設定,並不代表你的欄位最終會使用這三種之一字符集設定,以欄位級為準。

從資料庫中查詢資料並輸出顯示也有主要三個地方,一個就是上面所說的,二是連線字符集使用例如mysql_query('set name gbk')的語句設定,三是指令碼字符集(php指令碼的編碼),另外有網頁編碼字符集。

這些編碼應該一致,尤其是連線字符集與欄位字符集。

可使用 show variables like 'character%'; 來檢視相關字符集設定

例如欄位字符集為utf-8 ,連線字符集為utf-8 ,php指令碼為utf-8編碼 ,網頁charset為 utf-8

2樓:du瓶邪

解決辦法如下:

預設是拉丁把編碼設定為gbk

mysql的ini加上 default-charseter-set=gbk

然後用工作管理員關閉mysql,再重啟。

3樓:獨步歐文

首先確認以下幾項(我的是gb2312):

1,mysql資料庫的對應表的編碼方式

show create table 表名 \g;

最後一項:default charset=gb2312

2,html和嵌入的php**是否是gb2312編碼方式

可在:編碼->編碼字符集->中文->gb2312,進行設定(我使用的是notepad++工具)

3,php中sql語句的編碼方式,可通過下面語句執行:

<?php

$con=mysql_connect("localhost:3308","root","root") or die("連線成功

");mysql_select_db("db_school",$con) or die("選擇資料庫失敗!

".mysql_error());

mysql_query("set names 'gb2312'",$con);

********你需要執行的sql語句********

?>

4,html網頁編碼方式

可在頭標籤中設定

這4項的編碼方式要一致,如果設定後,網頁還是顯示亂碼,可滑鼠右鍵單擊ie瀏覽器的空白處,選擇:編碼-簡體中文(gb2312),即可顯示中文。

我用php從mysql取出資料然後轉json,但是為什麼中文顯示的是問號

4樓:與尋比遷

用php的json_encode來處理中文的時候, 中文都會被編碼成unicode

echo json_encode("中文");//"\u4e2d\u6587"

解決方式是加上json_unescaped_unicodeecho json_encode("中文", json_unescaped_unicode);//"中文"

5樓:匿名使用者

因為你的資料庫編輯沒有設定正確,

資料庫編碼一般設為 : utf8 (沒有 '-')

php如何每天定時執行,如何實現php定時執行任務,且時間是可配置的

最笨的方法 你寫一個方法,當一訪問 的時候就執行這個方法就可以瞭如果這個不是你需要的 那你就要去伺服器上面設定了 windows可以使用任務計劃 介面方式 計算機 右鍵 管理 然後就可以開啟 計算機管理 介面,在介面的左側有一個 系統工具 任務計劃程式 在此我們可以建立定時執行的計劃任務,並且可以為...

php 如何讓程式每天執行一次,PHP如何讓一段程式只執行一次?

如果是win系統就設定計劃 如果是linux系統,就設定shell指令碼 如果是網頁的形式,你還可以在有客戶訪問的時候,統計前一天的資料,然後做一個標識,表示已經統計過了,後面訪問的客戶就不會再統計,這個標識到了第2天凌晨就失效,然後第2天繼續統計就好了。這種方法通用win和linux系統 win ...

php連線mysql資料庫執行查詢語句後排序後再輸出

select from table order by id desc 查詢 所有 來自 table表 排序 按照 id 降序,desc 代表降序,asc 代表升序 sql select from news where 條件 order by id desc rs mysql query sql ro...