Re: [請益] 中文字變"問號"了

看板PHP作者 (貓奴一隻)時間13年前 (2013/01/26 18:00), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
會影響編碼的有好幾個環節,原本想說私底下回原po就好 不過或許po出來我才知道我的想法是不是錯的 (有錯的話 請指教><) 我把會整個過程視為加密與解密 寫入時:(就像加密) 1.填寫網頁的原始檔編碼 2.瀏覽器開啟填寫頁面的編碼 3.連資料庫的編碼 4.資料庫內記錄的編碼 讀取時:(其實跟上面一樣,就像解密) 4.資料庫的編碼 3.連資料庫的編碼 2.瀏覽器開啟頁面的編碼 1.顯示資料頁面的原始檔編碼 如果寫入跟讀出的每個步驟 1對1、2對2、3對3、4對4都相同,顯示就會相同 但是1~4的編碼 不一定要一樣 1~4的編碼不同只會影響到某些字在其中一個編碼不存在時, 存進資料庫時那幾個字會變亂碼 所以! 只用phpmyadmin寫入及讀出,顯示就會是正常的 只用自己寫的php頁面寫入及讀出,應該顯示還是正常的(除非連線設定檔案分開寫) 若之後調整了中間的編碼 舊資料只有重新撈出做轉碼後寫入 或者 重新輸入 才有可能正常顯示 而原po的資料我不曉得是從哪個頁面輸入的 總之phpmyadmin顯示正常 自己的php頁面亂碼代表兩邊設定有不同 ※ 引述《jscorpio1 (我 天蠍)》之銘言: : 問題:從資料庫讀出的中文字變成問號,但是在phpmyadmin裡顯示正常 : 問題畫面 http://ppt.cc/rYWP : 相關設定: : 1. mysql設定為utf8_unicode_ci : 2. php檔存為utf8 : 3. mysql_query("set names 'utf8'") 這一項 phpmyadmin 也要一致 我對phpmyadmin不熟...大概是檢查 config.inc.php 內有沒有設定 搜看看有沒有 iso-8859-1 或 big5的設定 把它都改為 utf8_unicode_ci 我的設定檔裡有 // Default connection collation (used for MySQL >= 4.1) $cfg['DefaultConnectionCollation'] = 'utf8_unicode_ci'; 若是沒有應該能自己新增進去吧... : 4. header ('Content-type:text/html; charset=utf-8') : 5. browser的預設編碼也是utf8 phpmyadmin也要一致 若檢查瀏覽器頁面不是utf8 有些版本的phpmyadmin在登入的時候 選擇語系有分big5或utf8,應該是這個影響的 但是像我的中文語系就沒有分@@ : 也google到了 http://www.mrmu.com.tw/2011/01/09/php-mysql-utf8-unicode/ : 都照做了,但還是無法解決 : 但是直接key在php檔裡的中文字都能正常顯示,若將browser改為big5則會變成亂碼 : 請問還有什麼方法可以try的嗎? 若是真的phpmyadmin的問題 你修改完後 phpmyadmin 內的資料顯示也會是亂碼 (就跟你的php頁面顯示一樣) 別太緊張^^" 這才是正確的! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.61.241.210
文章代碼(AID): #1H0warEw (PHP)
討論串 (同標題文章)
文章代碼(AID): #1H0warEw (PHP)