mysql資料庫編碼問題

來源:互聯網
上載者:User
使用的是mysql資料庫,資料庫中有兩種編碼,一是gbk_chinese_ci 另一種是utf_8general_ci 我網站是使用gbk的編碼,現在我查詢資料庫用print_r()能看到正常的值,但是當我用json_encode($data)轉成json時,就無法正常顯示,我想對一個中文欄位轉碼,請問我應該如何操作?
代碼如下:

$sql ="select * from raffle"; $result =mysql_query($sql);//執行SQL    $results = array();    while ($row = mysql_fetch_assoc($result)) {        $results[] = $row;    }


回複討論(解決方案)

php5.4.0以後
json_encode($data, JSON_UNESCAPED_UNICODE);

php5.4.0以後
json_encode($data, JSON_UNESCAPED_UNICODE);


可惜了,我是用的php 5.3 哪以前的版本用什麼方式編碼呢?

首先 json_encode 只接受utf-8編碼的資料。
其次你說的無法正常顯示是指什麼,截個圖看看。

1、json_XXXX 函數只能處理 utf-8 字元集
2、json_encode($data, JSON_UNESCAPED_UNICODE) 的 JSON_UNESCAPED_UNICODE 參數只是不把中文字元轉換成 unicode 編碼形式。與你的需求不符,無需惋惜
3、由於輸出 json 串的頁面不會輸出其他內容,所以你只需在串連資料庫後執行 set names utf8 指令,就可從資料庫中讀取 utf-8 字元集的資料,正好被 json_encode 所使用

我用php中iconv 函數來轉換編碼

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.