引自:http://blog.xuite.net/emisjerry/tech/17793877
修改前與修改後…
真的有差…搞php套件的東西最怕的就是一開始設定出問題,最後搞的難以維護…
尤其是 mysql 編碼的問題最為頭痛,一定要先處理好… 很多套件預設都是latin編碼,最好是看的懂…
為了未來備份保養的問題…
還是好好的先搞定這個狀況 = =” 不然後來就很頭痛了…
修改中文亂碼問題
a:後端新增資料後,都以utf8編碼輸入:
- 修改的第一個檔案:joomla的目錄includesdatabase.php
- 修改行號:第101行-102行
- 修改前:
$this->_table_prefix = $table_prefix;
//@mysql_query("SET NAMES 'utf8'", $this->_resource);
$this->_ticker = 0;
$this->_log = array();
}
- 修改後:
$this->_table_prefix = $table_prefix;
if ($this->isSupportUtf8()) {
mysql_query("SET NAMES 'utf8'", $this->_resource);
}
$this->_ticker = 0;
$this->_log = array();
}
- 並增加新的函數isSupportUtf8 (此段程式碼放在上方修改後的程式的 "}" 後面即可)
/**
* @return bool check if mysql support utf8 or not
*/
function isSupportUtf8() { // from dotproject 2.1rc1 Chinese Mark Wu
// check mysql version. Version lower than 4.1.1 doesn't support utf8
if (mysql_get_server_info($this->_resource) < '4.1.1') return false;
// check if utf8 support was compiled in
$result = mysql_query("SHOW CHARACTER SET like 'utf8'",$this->_resource);
if (mysql_num_rows($result) > 0) {
return true;
}
return false;
}
b:一開始安裝資料,匯入資料庫時即以utf8編碼方式匯入 (必須先完成a,b才有效用):
- 修改的第二個檔案:joomla的目錄installationinstall2.php
- 修改行號:第67行
- 修改前:
$sql = "CREATE DATABASE `$DBname`";
- 修改後:
if ($database->isSupportUtf8()) {
$sql = "CREATE DATABASE `$DBname` CHARACTER SET utf8 COLLATE utf8_general_ci";
} else {
$sql = "CREATE DATABASE `$DBname`";
}
這樣就真的搞定了 @@ 呼…
所以…我網站要重架了 = =" 真害…