手機端常常會遇到用戶輸入框,輸入emoji,如果是數據庫是UTF8,會遇到報錯:SQLException: Incorrect string value: '\xF0\x9F\x98\x84' for column 'review' at row 1
原因是:UTF-8編碼有可能是兩個、三個、四個字節。Emoji表情是4個字節,而Mysql的utf8編碼最多3個字節,所以數據插不進去。
過濾
php過濾emoji表情:
$name = preg_replace('/[^\\u0000-\\uFFFF]/ig', '', $string);
js過濾emoji表情:
name = name.replace(/\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g, "");
保留
參考:http://blog.csdn.net/ugg/article/details/44225723