我用php從mysql撒資料然後轉json但是為什麼中

時間 2021-08-30 09:30:55

1樓:與尋比遷

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

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

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

2樓:匿名使用者

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

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

php從mysql查出來的資料轉換成json格式中文亂碼怎麼解決

3樓:柚子ok丶

解決辦法是在使用json_encode之前把字元用函式urlencode()處理一下,然後再json_encode,輸出結果的時候在用函式urldecode()轉回來。具體如下:

//urlencode處理

function json_array($obj) else}return $obj;

}//urldecode解密轉換為中文字元function _json($obj)

echo _json($json);//$json為你要輸出的json陣列

此處遞迴呼叫是為了處理多維陣列······

4樓:閒置星空

在php5.4, json新增了一個選項: json_unescaped_unicode, 故名思議, 就是說, json不要編碼unicode。

echo json_encode($json, json_unescaped_unicode);

找了篇文件可以參考下:http://blog.csdn.net/bjash/article/details/9834497

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

5樓:匿名使用者

是字元編碼問題

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

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

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

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

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

6樓:du瓶邪

解決辦法如下:

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

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

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

7樓:獨步歐文

首先確認以下幾項(我的是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資料庫的內容後顯示為亂碼,中文變成問號怎麼辦? 10

8樓:

換成utf8肯定不行,因為是問號,肯定不是三位元組到兩位元組 的問題,而是和拉丁1有關,因為問號是不可能轉換的意思 ,失敗了,

解決:你需要 按資料流入的程式再配置好,再原路返回,,再換重新建庫,匯入 ,,ok

順便說一下,出的分太少了

9樓:匿名使用者

$hostname_conn = "localhost";

$database_conn = "db";

$username_conn = "dbname";

$password_conn = "dbpwd";

$conn = mysql_connect($hostname_conn, $username_conn, $password_conn) or trigger_error(mysql_error(),e_user_error);

mysql_select_db('testdb');

mysql_query("set names 'utf8'");//********

在你的連線資料庫配置檔案中,記得加上最後帶‘****’這句,就解決了了

我和你情況一樣,讀取中文出現‘?’。

10樓:匿名使用者

你找下這段,把 gbk換成utf-8

如果是utf-8就換成gbk

用php從mysql資料庫中取出資料變問號? 50

11樓:匿名使用者

這個是預設設定,你去myql裡面修改就可以了,就是進入到mysql的命令列或者工具欄。

show variables like 'character_set_%';

查到相關的引數然後set一下就可以了,如: set character_set_server=utf8;

mysql讀取中文資料的問題,在mysql的命令列介面是可以讀出中文的,但是在php裡面讀出來的就是問號

12樓:匿名使用者

很明顯是編碼問題:

********************

要想不出現亂碼

請確保:如下幾個地方編碼相同。

-------------------------------拿gb2312來說

1、你的資料庫編碼為gb2312.

2、你的資料庫連線為gb2312.

3、你的php檔案,html檔案編碼是gb2312***************====

看了你的php**。

你用到了 $db->query("set names gb2312");,但是你位置放錯了。

你應該是放在sql語句執行以前。如下:

-------------------------$db->query("set names gb2312")$sql = "select * from t_user";

$rs = $db->query($sql);

這樣就ok了,你重新寫一條資料進去,再查一下試試。

希望我的答案能幫到你,:)

13樓:街頭蜘蛛

<?php

$db=@new mysqli("localhost", "root", "123456","test");

if(mysqli_connect_errno())mysql_query("set names gb2312");

php插入mysql資料庫中文變成亂碼 問號

14樓:℡媙の綺

去mysql裡面設定,不要在php裡設定mysql的編碼,亂碼肯定就是編碼問題無疑,推薦你先把mysql裡面表的編碼改好,然後再把php的編碼改好,這樣就應該沒問題了。

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

15樓:龍氏風采

首先看你mysql資料庫的編碼和你編輯器的編碼是否一致

16樓:

**編碼問題,查詢結果需要作轉換,比如utf-8

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

17樓:匿名使用者

沒有圖,不知道具體原因,首先看你mysql資料庫的編碼和你編輯器的編碼是否一致

php中怎麼從資料庫中撒資料怎麼顯示最好有詳細

con mysql connect localhost root 資料庫資訊 mysql select db shop 資料庫名 mysql query set names utf8 設定字符集編碼 sql select goods name,goods number,shop price from...

php怎麼連線mysql資料庫,php怎麼連線Mysql資料庫問題!

db server localhost db user root db pwd password db name test sql select from user where username admin conn mysql pconnect db server,db user,db pwd m...

php利用mysql資料庫已有的資料進行登入操作

獲取post表單提交的username username isset post username trim post username 同上 password isset post password trim post password 使用pdo連線mysql資料庫 conn new pdo my...