首頁 >資料庫 >mysql教程 >如何正確將UTF8 MySQL表中的Latin1字元轉換為UTF8?

如何正確將UTF8 MySQL表中的Latin1字元轉換為UTF8?

DDD
DDD原創
2024-12-09 04:29:09782瀏覽

How Can I Correctly Convert Latin1 Characters in a UTF8 MySQL Table to UTF8?

將UTF8 表中的Latin1 字元轉換為UTF8

您遇到了帶有變音符號的字元(例如“Jáuò Iñe” )的問題) 由於缺失而被錯誤地儲存在UTF8表中「mysql_set_charset('utf8')」呼叫。

要解決此問題,您嘗試使用「mb_convert_encoding」和「iconv」轉換受影響的行。但是,這些方法無法捕獲第一個“非法”字元(在範例中表示為“ă”)之外的字元。

修正資料的建議方法是使用MySQL 函數:

convert(cast(convert(name using  latin1) as binary) using utf8)

說明:

  1. outer
  2. outer
  3. inner
  4. 轉換函數將資料從其原始形式轉換Latin-1 表示到二進位表示。

cast 函數確保內部轉換返回二元value.

在某些情況下,內部轉換可能不是必需的,因為數據可能已經以適合轉換為UTF-8 的二進制格式儲存。測試這兩個選項應該可以確定適合您情況的正確方法。

以上是如何正確將UTF8 MySQL表中的Latin1字元轉換為UTF8?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn