mysql 口字符号怎么处理?
mysql 口字符号怎么处理?
mysql 字段是text的,遇到 口字符号就会自动从这里断开,后面的内容无法入库。使用addslashes函数无效。
口字符号就是比口字细那种,不知道是乱码还是无法显示的字符。
------解决思路----------------------
$s = '44cq6iup55czvevbteidtuwon+ibi+ezvewpjemmipcfmyjwn5mi44cr5pys5p2l6yo96kab552h5lqg44cc56qb54s25p2l5lqg6io25y6f6jul55m955qe5y+n6aai8j+ygvcfmillpkfljyrlpjznmotvvizkvadov5norqnnvqtph4znmotnllfku6pnkibku6zmgi7kuyjmtlvwn5iz5y2b5lqu5asp55qe5pwi5p6c77ym5bcx5piv6l+z5lmi54mb6yc84pym54wn6l+z5liq6lal5yq/5lil5y6777ym5lia5liq55ax56il5lin5q2i5asn5lia5liqy3vw5lqg5zcn8j+ysei/mewwseayr+idtuwon+ibi+ezves4uuwvpei/mes5ioebq+eahoaev+aej++8gfcfkyrwn5gk5lia55ax56il5peg5pwi6yca5qy+77yb5bcx5piv5pyj5bqv5rcu4pymd2vpegluonn1bglumdkwoa==';
$s = base64_decode($s);
//echo $s, php_eol;
preg_match_all('/./u', $s, $m);
//print_r($m[0]);
echo bin2hex($m[0][13]);
f09f9988
这是一个 emoji 表情符,需要设置字符集为 utf8mb4 才能进行保存
如果你的 mysql 版本较低,不支持 utf8mb4 的话,可以通过字符串替换变通一下
入库前$text = preg_replace_callback('/[\xf0-\xf7].{3}/', function($r) { return [email protected]' . base64_encode($r[0]);}, $text);
出库后再换回来