bestlong 怕失憶論壇
標題:
MySQL 之編碼篇
[打印本頁]
作者:
bestlong
時間:
2006-9-26 09:59
標題:
MySQL 之編碼篇
用 MySQL 資料庫最好弄清楚編碼設定的觀念來避免顯示亂碼的問題
OK.蹦's 知識庫
MySQL
http://leexuan.blogbus.com/s6278/
月夜火
MySQL 5 使用 UTF-8 配合 WordPress 的問題
http://moonfire.twbbs.org/17
[encoding] MySQL 4.1.x SET NAMES UTF8
http://blog.dragon2.net/archives/2005/10/24/228.php
作者:
bestlong
時間:
2009-5-9 14:07
無論任何 PHP 系統的前端或是後台已經是 UTF-8 的編碼格式
以及 MySQL 的設定檔 my.cnf 是如何的設定
只要是號稱 UTF-8 版本的系統
使用者還是要用指令去檢查 MySQL 連線後的 Server System Variables 狀態
show VARIABLES like 'char%'
複製代碼
正確的結果是要
character_set_client => utf8
character_set_connection => utf8
character_set_database => utf8
character_set_filesystem => binary
character_set_results => utf8
character_set_server => utf8
character_set_system => utf8
character_sets_dir => /usr/share/mysql/charsets/
複製代碼
而不是
character_set_client => latin1
character_set_connection => latin1
character_set_database => utf8
character_set_filesystem => binary
character_set_results => latin1
character_set_server => utf8
character_set_system => utf8
character_sets_dir => /usr/share/mysql/charsets/
複製代碼
另一個簡單的判斷方式就是使用 phpMyAdmin 瀏覽資料庫內的中文資料時不會有亂碼
作者:
bestlong
時間:
2010-2-28 12:56
MySQL Service 的設定檔 my.cnf 中有個 init_connect 設定可以讓連線跑參數
可能有人會設定成這樣
[mysqld]
init_connect='SET NAMES utf8'
但是這個參數
在使用具有 super 權限的帳號(root 帳號就是)登入時是無效不會執行的
會有這樣的考量是當 init_connect 有錯誤的設定時有可能會導致無 super 權限的一般帳號無法連線
所以最佳的方式還是由 Client 端完成連線驗證後自行執行 SQL 語法 "SET NAMES 'utf8'"
歡迎光臨 bestlong 怕失憶論壇 (http://www.bestlong.idv.tw/)
Powered by Discuz! X1.5