Win XP IIS+Mysql+PHP中文顯示'???'

我使用 Mysql 5安裝在 WinXp上,並設定 character set 為big5, 同時安裝PHP5及Dreamweaver,在網頁顯示中文時皆出現 '?', 英文及數字則沒有問題,使用Excel + Microsoft Query經由ODBC查詢Mysql時亦出現同樣的問題,每一中文字對應一個問號('?'),是否有人可以幫我解決此問題,謝謝!

3 Answers

Rating
  • 2 decades ago
    Favorite Answer

    當你使用 MySQL 4.1 以上的版本

    建議你的 PHP 程式在一切的查詢之前

    先下一條命令

    SET NAMES BIG5

    例如 mysql_query("set names big5");

    這樣可以確保語系的正確性

    因為 MySQL 4 版以後開始支援多國語言

    所以傳回查詢結果時會將 UTF-8 的編碼轉換成客戶端的編碼

    而 PHP 當客戶端時預設會採用 latin1 編碼

    這時候傳回來的字串 100% 會錯 (這問題也困擾我很久)

    不過加上這條指令就可以明確告訴資料庫伺服器

    我是哪一國的人了 ^^

  • 2 decades ago

    經過多次測試結果,在mysql_select_db $database_t01, $t01);之後加入

    mysql_query("SET NAMES utf8",$t01);mysql_query("SET CHARACTER_SET_CLIENT=utf8",$t01);mysql_query("SET CHARACTER_SET_RESULTS=utf8",$t01);就可以,我在Mysql 設定為utf8,php.ini中亦加入default_charset="utf8",如此即可,但如何設定ODBC為可讀取utf8 ? 另外是否在my.ini設定ok,既可不用加入上述三條指令?

  • 2 decades ago

    請問您: 資料庫中的原始資料是如何輸入的呢? 是網頁輸入的嗎? 還是用 mysqldump 灌進來的? 因為我覺得您的原始資料已經被破壞了, 也就是說, 就算在 mysql 的 console 模式中輸入 SELECT * FROM [您的表格名稱] ; 所得到的結果也將是一團亂碼....

    若果真如此,

    只要重新 dump 並加入參數 --default-character-set=latin2

    如此一來, 閣下的問題便迎刃而解了

    Source(s): 慘不忍睹的回憶
Still have questions? Get your answers by asking now.