Character-Set

將表的所有數據(同時具有編碼數據)轉換為單一編碼 utf8 或 latin1

  • January 28, 2016

我們的表格由兩個不同的編碼數據(utf8 和 latin1)組成,這些數據是從兩個不同的應用程序案例中插入的。如果我們以一種編碼方式獲取數據,我們會遇到其他語言文本的字元串損壞問題。我們需要將總表數據轉換為單一編碼。

例如:表 X id 名稱數據編碼 1 ébarber - utf8 2 à gogo - latin1

如果我們使用“latin1”連接字元集,我們會遇到“ébarber”(斷字元串)的問題。如果我們使用“utf8”連接字元集,我們會遇到“à gogo”(斷字元串)的問題。

我們如何將此表數據轉換為 utf8 或 latin1 的單一編碼?請分享您的想法以解決此問題。

根據您使用的 RDBMS:

  • 如果 RDBMS 支持這樣的操作,您可以嘗試更改 Latin1 編碼的列以使用 UTF-8 編碼。

如果您使用的是 MySQL,則應查看有關 SO:

Converting mysql tables from latin1 to utf8的相關問題

  • 你可以試試:

    • 添加一個編碼為 UTF-8 的新列
    • UPDATE new_column = Latin1_column(我假設 RDBMS 能夠隱式轉換,因為它知道兩種編碼)
    • 刪除 Latin1_column
    • 將 new_column 重命名為以前的 Latin1_column 的名稱

這是一個相當籠統的問題,所以我的回答也很籠統……

將所有內容整合到 UTF-8!

如果可能,至少重新載入 latin1 條目:這次將 latin1 轉換為 UTF-8,這應該始終是可能的。

根據數據庫產品,可以通過導入工具執行轉換。從平面文件和自定義導入程序開始,也可以使用該recode工具。

它引出瞭如何定義包含 char 數據的列的問題。根據定義和數據庫,甚至 UTF-8 數據在導入時可能已經損壞。

引用自:https://dba.stackexchange.com/questions/127582