大樓、店面冷氣保養、安裝、維修
多年維修經驗,專業熱忱技術
比價網打造理想的居家、商業空間門窗,設計、安裝
服務完善,價格低、品質優,立即來電

首頁  •  j2h 論壇 • 程式設計討論     • 

[php] MySQL編碼轉換: BIG5 to UTF8

房東:達人
發表時間:2011-03-17


MySQL目前已經是Community Server 5.1的版本,

甚至5.4 Beta也開放下載了


這次要處理的是常見的編碼轉換問題,

雖然資料庫的升級並不是常常在做,


 


通常在升級http server時也不會去動到database的東西,

這種平時就運作得好好的資料庫,

少動少事,一動就擔心不曉得會造成怎樣的災難,

(尤其資料筆數是以數量級在算時)

因此在真正需要升級時, DDL部份向下相容是沒問題的,

不過資料內容就很容易遇到編碼不同造成轉完資料庫後變亂碼的情形


今天要來處理的是早期MySQL資料庫的轉換,

在早期的MySQL版本中, 通常不會去設定欄位或資料表的編碼,

只要它吃進去什麼東西後, 能原封不動地吐出來就好,

而目前front-end application越來越多樣化,

對編碼的格式做額外處理(例如多語系的變換),

所以最好還是在升級的時候, 一併做編碼的轉換,

這樣可以省下未來可能會遭遇編碼問題時花費的時間


一般透過mysqldump指令產生的原始資料庫文件, 通常預設是latin1編碼,

不過也可能根據具體的MySQL server的編碼設置而不同,

mysqldump指令如下



mysql -u root -p -h localhost database > dumpfile.sql



在dump完成後, 修改dump file並在最前面加入以下述敘:



SET NAMES utf8;

SET CHARACTER_SET_CLIENT=utf8;

SET CHARACTER_SET_RESULTS=utf8;



* 注意: 若新的MySQL版本低於4.1, 則不需加入上述語法, 否則會產生unknown variable

接著用iconv轉換dump出的資料庫文件:



iconv -c -f big5 -t utf8 dumpfile.sql > utf8-dumpfile.sql



寫入資料庫: (請先確認你有了原始資料庫的備份再來做)



mysql -u root -p < utf8-dumpfile.sql






  • 贊助網站       

    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務
    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!



  •  共 0 人回應

    姓名:
    佈告內容:
    其他選項: