當嘗試將MySQL表從缺省的不區分大小寫的swedish或ascii字符集遷移到utf-8時,有沒有人有任何提示或竅門時刻要注意?我參與的一些項目正在努力實現更好的國際化,數據庫將成爲這一變化的重要組成部分。MySQL UTF/Unicode遷移技巧
在我們改變數據庫之前,我們要將每個站點轉換爲使用UTF-8字符編碼(從最不重要到最多),以確保所有輸入/輸出使用相同的字符集。
感謝所有幫助
當嘗試將MySQL表從缺省的不區分大小寫的swedish或ascii字符集遷移到utf-8時,有沒有人有任何提示或竅門時刻要注意?我參與的一些項目正在努力實現更好的國際化,數據庫將成爲這一變化的重要組成部分。MySQL UTF/Unicode遷移技巧
在我們改變數據庫之前,我們要將每個站點轉換爲使用UTF-8字符編碼(從最不重要到最多),以確保所有輸入/輸出使用相同的字符集。
感謝所有幫助
一些提示:
CHAR
和VARCHAR
列將最多使用3次以上的磁盤空間。 (您可能不會爲瑞典語單詞獲得太多磁盤空間。)SET NAMES utf8
。如果你不這樣做,你會得到部分亂碼的字符。我將要渡過了以下網站/物品,以幫助找到答案。
Hanselminutes episode "Sorting out Internationalization with Michael Kaplan"
而且我也只是發現了一個很話題上通過後德雷克·錫弗斯@奧賴利ONLamp博客,因爲我在寫這一點。 Turning MySQL data in latin1 to utf8 utf-8
你
CHAR
和VARCHAR
列將最多使用3次以上的磁盤空間。
只有當它們塞滿了latin-1且序號> 128時。否則,增加的UTF-8空間使用量是最小的。
整理不總是有利的。您將得到與非修正版本相對應的清單,但這並不總是正確的。可能要去w/utf8_bin,但所有內容都區分大小寫。
請注意索引長度限制。如果一個表的結構,說:
一個varchar(255) b爲varchar(255) 鍵( 'A', 'B')
你會走過去的1000字節的限制上密鑰長度。 255 + 255沒問題,但255 * 3 + 255 * 3是不行的。