Object-C中emoji與json的問題

suboysugar發表於2015-06-10

遇到一個問題,要儲存iOS鍵盤輸出的emoji表情到MySQL,我知道用blob+utf8是可以存的。但是現在我的這張表已經太大了,不可能去改型別。所以就想把emoji表情匹配出來,替換掉,再存。
但是,iOS鍵盤輸入的emoji表情,並不是標準的0xe001 – 0xe537這種,而是變化過的。
例如:第一個大笑的表情,標準emoji unicode是 0xe415 而iOS鍵盤輸出的是 0xd83dxde04 兩位。
我用preg_match() 去做匹配

preg_match(`/\x{d83d}\x{de04}/`, $str_with_emoji_emotion, $matches);
var_dump($matches);

列印出來是個 NULL

求助各位大神,怎麼才能匹配這種表情符號啊。。。

補充:我用 preg_match(`/[x{0000}-x{FFFF}]/u`, $str_with_emoji_emotion, $matches); 去匹配都匹配不到。。。我懷疑是這個表情符號的問題,繼續研究。。。繼續求解。。。

補充2:今天搞定了,做了 bin2hex 的轉碼 http://jiajun.org/g/emoji_encoder.php

 

 

今天搞定了,做了 bin2hex 的轉碼 http://jiajun.org/g/emoji_encoder.php

 

其實已經有個開源轉換程式了。
http://code.iamcal.com/php/emoji/
https://github.com/iamcal/php-emoji

 

試試這個

preg_match(`/x{d83d}x{de04}/u`, $str_with_smail_emotion, $matches);

 

如何聯絡我:【萬里虎】www.bravetiger.cn
【QQ】3396726884 (諮詢問題100元起,幫助解決問題500元起)
【部落格】http://www.cnblogs.com/kenshinobiy/


相關文章