導航:首頁 > 編程大全 > php表情存不進資料庫

php表情存不進資料庫

發布時間:2023-09-08 00:34:25

① 如何轉義emoji表情,讓它可以存入utf8的資料庫

unicode emoji是4個位元組的,存不進里,找到一個轉義的庫code.iamcal.com/php/emoji/,但是轉為Unicode之後,還是4個位元組,一樣存不進,應該說根本沒轉。轉為其他格式的emoji又怕以後新增了表情不好做,你們在不改資料庫編碼的前提下,是怎麼弄的?
方法1:base_encode64
這種方法是可以,但是舊數據沒有經過encode操作,取數據的時候如果統一進行decode的話,舊數據會丟失的。
方法2:urlencode
這個似乎可以,對沒有經過encode的數據進行decode也不會有影響,而且多次decode似乎也不會有影響。你們說這個方法有缺陷嗎?
=======================
一個發現,微信獲取用戶基本信息的時候,笑哭那個表情print_r出的是\ud83d\ude02,而我存儲的時候,報錯說這個 \xF0\x9F\x98\x82 值不能存儲,請問這是怎麼回事,自動轉碼了,轉成的這是什麼?是微信轉碼過了嗎?
=======================
方法3:最後採用了下面採納的那個方法,因為我覺得它有下面幾個優點:
1、那個方法只轉換表情,不會轉換中文,所以數據還是直接可讀的
資料庫中存儲起來是這樣的, 後面的\ud83d\udca5可以隨意復制粘貼,而顯示出來是這樣的,
2、不會把表情轉換為其它標准,只有一個簡單的,固定的轉換演算法,也就是說不需要一個表情庫來對照著轉換,所以以後其它人要使用這個數據的時候,也很容易知道每個表情是對應的哪個。就算蘋果大爺又增加了表情,也不需要做什麼額外的修改。
3、可以無限decode輸出的都是正確的內容。因為有的時候可能需要在一次請求中的兩個地方做decode,其它decode多次會把正確的數據改成其它數據,這個不會。

② php存入emoji表情出現亂碼,資料庫已經改為utf8mb4編碼了依然亂碼

你插入數據的時候寫的insert中欄位數據的編碼不對。你要轉換成相應的字元編碼才可以的。
<?php
header("Content-type:text/html;charset=utf8");
//你的代碼
//也可以用notepad++將文件格式改為UTF8
?>

插入資料庫需要
1
mysql_query("SET NAMES UTF8");

閱讀全文

與php表情存不進資料庫相關的資料

熱點內容
iphone視頻未知錯誤 瀏覽:230
哪些學科為工具學科 瀏覽:228
javachar與運算 瀏覽:347
如何在cad文件中插入源泉插件 瀏覽:362
存儲路徑無許可權或文件名不合規 瀏覽:496
iphone4s怎麼刪除文件 瀏覽:545
中公教師文件名叫什麼 瀏覽:844
word2010怎麼從任意頁設置頁碼 瀏覽:622
cass怎麼校正數據 瀏覽:612
linux查看所有管理員 瀏覽:2
u盤文件解壓縮失敗如何修復 瀏覽:566
黑蘋果怎麼顯卡才4m 瀏覽:270
方程式0day圖形化工具 瀏覽:961
電腦裝文件很慢 瀏覽:958
網路標號怎麼用 瀏覽:352
會議上文件讀好後要說什麼 瀏覽:783
安裝壓縮文件office 瀏覽:417
2014年網路營銷大事件 瀏覽:186
首頁全屏安裝代碼 瀏覽:39
黨規黨紀指的哪些文件 瀏覽:995

友情鏈接