joomla 1.0x utf8 編碼問題處理

引自:http://blog.xuite.net/emisjerry/tech/17793877

修改前與修改後…

真的有差…搞php套件的東西最怕的就是一開始設定出問題,最後搞的難以維護…

尤其是 mysql 編碼的問題最為頭痛,一定要先處理好…   很多套件預設都是latin編碼,最好是看的懂…

為了未來備份保養的問題…

還是好好的先搞定這個狀況 = =” 不然後來就很頭痛了…

a1

 

修改中文亂碼問題

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`";
}
這樣就真的搞定了 @@ 呼…

所以…我網站要重架了 = =" 真害…

發表迴響

返回頂端