看板 PHP 關於我們 聯絡資訊
※ 引述《latria (silly)》之銘言: : 各位好, : 我知道亂碼問題已有許多討論串, : 我也爬過文了 : 可是問題還是不知道出在哪裡>< : 如果有漏爬還請多多見諒 : 問題: : 於"網頁"輸入中文至"phpmyadmin",於"phpmyadmin"檢視,中文呈現為"亂碼" : 於 "網頁" 檢視,中文呈現為"正常" : 於"phpmyadmin"輸入中文至"網頁",於 "網頁" 檢視,中文呈現為"問號" : 於"phpmyadmin"檢視,中文呈現為"正常" : 截圖: : 網頁 http://imgur.com/Y8HUZfw : phpmyadmin http://imgur.com/Wrupaky : 開發環境是Cloud9,用 MySQL 連結 phpmyadmin : 已確認過 : 1.html是否加上 : <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> : 2.form表單是否加上 : header("Content-Type:text/html; charset=utf-8"); : 3.phpmyadmin資料庫,資料表,欄位編碼皆已設為utf8_general_ci : 4.連結資料庫的檔案也有加上mysql_query("SET NAMES 'UTF8'"); : 5.也有將php.ini的檔案做修改 : http://imgur.com/zoPeaYs : 以下是程式碼截圖 : http://imgur.com/a/oFT10 : 先謝謝大家 ==== 新增MySQL資料表時需注意的事項==== 1. 記得「資料表」編碼一定要設成「utf8_unicode_ci」(在上方導覽列的「操作」按鈕 ,點下去以後找到資料表選項這個field,再來找到編碼與排序項,選擇「utf8_unicode_ ci」即可) 2. 在各網頁的MySQL連線程式碼後方加上「mysql_query("SET NAMES UTF8");」這句。 只要動這兩項就好了,其他的建議別動或更改 當然,在每篇的html前也一定要加: <meta http-equiv="Content-Type" content="text/html; charset=utf-8">, 不然不手動設定編碼的話還是會出現亂碼的 就這樣即可安心享用MySQL以及PHP網頁程式了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.192.217 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1460654066.A.139.html ※ 編輯: banana2014 (125.227.192.217), 04/15/2016 01:22:23
GALINE: 這年頭要用 utf8mb4_unicode_ci 噢 04/15 12:04
latria: 有做了,還是亂碼>< 04/15 20:20
a60301: utf8mb4 是因為 utf8 不夠用嗎? 04/18 00:21
a60301: 等等,所以utf8mb4是因為MySQL裡面的utf8僅支援3bytes嗎? 04/18 00:25
a60301: 已爬到文 https://mariadb.com/kb/en/mariadb/unicode/ 04/18 00:27
a60301: 用 utf8mb4 會自動補足 4 bytes 所以是固定大小的儲存… 04/18 00:29