首頁  >  文章  >  資料庫  >  為什麼我的表情符號在 MySQL 中消失了?

為什麼我的表情符號在 MySQL 中消失了?

DDD
DDD原創
2024-11-06 20:25:02328瀏覽

Why are my Emojis Disappearing in MySQL?

MySQL 字元編碼和表情符號儲存

我們有一個iPhone 應用程序,它將表情符號傳輸到PHP 後端,然後將它們插入MySQL資料庫。然而,插入成功後,儲存的值顯示為空白。

純文字插入成功,但當包含表情符號時,僅插入文字。由於偶爾插入非表情符號且儲存需求較小,建議將欄位類型變更為 Blog(以容納影像資料),因此結果證明不適合。

解決方案:MySQL 字元集相容性

問題出在MySQL的字元編碼上。 iOS 表情符號主要利用超過 Unicode 表的基本多語言平面 (BMP) 的代碼點。例如,「張開嘴巴微笑著眼睛的笑臉」表情符號位於 U 1F604。

5.5 之前的 MySQL 版本僅支援 UTF-8 的 BMP,限制儲存為 U FFFF 下的字元。因此,MySQL 無法儲存 U 1F604 表情符號或其他「高字元」。

要解決此問題,請使用 MySQL 5.5 並選擇 utf8mb4(正宗 UTF-8)、utf16 或 utf32 作為列字元集。此外,請確保 PHP 和資料庫之間的 MySQL 連線使用相同的字元集。

對於低於 5.5 的 MySQL 版本,請使用 BLOB 欄位類型,該類型儲存原始位元組而不考慮「字元」。雖然這允許表情符號存儲,但它會損害文字搜尋和索引效率。

以上是為什麼我的表情符號在 MySQL 中消失了?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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