補充一下資料庫的部份,
大部分的插件再編寫 SQL 的時候,
都是類似下面這2種
複製程式
$db->query("DROP TABLE IF EXISTS {$tablepre}petshopdata",1);
$db->query("CREATE TABLE `{$tablepre}petshopdata` (
id mediumint(8) unsigned NOT NULL auto_increment,pet varchar(30) NOT NULL default '',
newpetclass varchar(8) NOT NULL default '',
pettxt varchar(50) NOT NULL default '',
petsx varchar(6) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;");
或是這種
複製程式
{$tablepre}mypetitemdata(itemtype,itemlevel,itemmaxnum,itemcost,itemname,itemtext,trade,armposition,createtime,itemplus) values('alife,2',Ɔ',鰿',鬔,200','XXXX','ZZZZZZZZZ','store,user,useable','',Ɔ','+dead,1,+hp,300,+sp,100') ;
上面2種都是比較常見的SQL語法
但是有時候安裝完成會出現亂碼,
這時候要注意一下!!
有些插件再SQL裡面會給你藏了一些讓你會亂碼的東西,
以第一個例子來說
我再SQL表裡面給你多加一行 CHARSET=gb2312
例如:
複製程式
pettxt varchar(50) CHARSET=gb2312 NOT NULL default '',
這時候不管你怎麼轉碼在這個SQL表格內的資料都會存成gb2312編碼
只要你的網頁不是GB2312編碼類型的,
那亂碼就會出現了,
雖然說這種情況很少
但是我建議大家在安裝插件有需要升級SQL的時候,
檢查一下SQL的部份或是在SQL表的尾端多加上一句指定編碼的語法
這樣可以避免絕大多數亂碼的問題。
至於加在那邊這邊跟大家說一下:
在每個SQL表的尾端都會有這樣的一句
複製程式
你只需要在 MyISAM 後面加上指定編碼的語法就行了,
例如你要 BIG5 編碼
複製程式
TYPE=MyISAM CHARSET=big5;");
要UTF8編碼
複製程式
TYPE=MyISAM CHARSET=utf8;");
加上這樣的一句語法會讓你在安裝完插件的時候,
減少很多會變成亂碼的問題。
如果插件的SQL語法是屬於第2種的編寫方式,
則只需要注意 中文字的部份,
BIG5編碼方式是無法儲存簡體字的,
反之亦然,
所以只要注意中文字的部分不要有簡體字型就可以了。
以上是小弟在安裝插件時的一些心得。
希望可以讓大家可以在安裝插件時減少亂碼的機會。
PS:若你在轉換PHP或HTML編碼的時候,
如果檔案內容不存在中文字的話,
那這個PHP或HTML可以不用轉碼沒關西!!