Character-Set
將表的所有數據(同時具有編碼數據)轉換為單一編碼 utf8 或 latin1
我們的表格由兩個不同的編碼數據(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 數據在導入時可能已經損壞。