2011-08-25 38 views
2

我們目前有大約30個使用latin1_sweedish_ci進行編碼的表。我意識到雖然utf8_unicode_ci是一個更安全的編碼使用,爲此我想將所有這些錶轉換爲。將所有mysql表從latin1_swedish_ci切換到utf8_unicode_ci時會產生影響嗎?

我的問題是,

  1. 我可以轉換所有這些表的到,而不會造成任何數據損壞utf8_unicode_ci。
  2. 如果瑞典人在這一點上一直工作良好,是否有這樣做的理由呢?
  3. 在新創建的表上開始使用utf8_unicode_ci可以嗎?
+0

[UTF-8通過所有方式]的可能重複(http://stackoverflow.com/questions/279170/utf-8-all-the-way-through) –

+1

該帖子不回答現有的問題表。所以我不明白這個帖子應該如何關閉。我沒有從頭開始的選擇,這個帖子也沒有回答這個問題。 – Metropolis

回答

1

我可以轉換所有這些表的到,而不會造成任何數據損壞utf8_unicode_ci。

如果使用純MySQL的工作(即您在使用表沒有Web應用程序實際上),這很可能會被罰款。只要有可能,切換表歸類就會轉換數據(如果轉換方向不一定相反,從UTF-8到latin1,因爲UTF-8的範圍要寬得多,並且有許多字符,latin1不能顯示)。

如果一個或多個應用程序正在訪問這些表,那麼它們都將依賴於它們以及它們是否可以完全處理UTF-8數據。例如,許多PHP應用程序都不能。

+0

嘿佩克卡!感謝您的迴應。如果我將應用程序脫機,以至於在轉換所有應用程序時它不訪問應用程序,該怎麼辦? – Metropolis

+0

@大都市沒關係,問題(如果有的話)稍後再來。 UTF-8是一個多字節編碼,每個字符佔用1到3個字節。 Latin1是一個單字節編碼,每個字符只佔用一個字節。例如,PHP的本地字符串函數不是多字節安全的,所以稍後應用程序有可能會中斷數據。像Python這樣的其他語言有本地Unicode支持,這會導致更少的問題。這真的取決於你的應用程序。 –

+0

嗯.....所以如果我現在轉換它們,數據會沒事的....但是隨着PHP在將來使用這些表格,它們會變得混亂起來?我希望我能正確理解你。 – Metropolis

相關問題