前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >正则过滤utf8mb4字符以支持utf8项目

正则过滤utf8mb4字符以支持utf8项目

作者头像
无刺鱼
发布2022-11-16 14:23:20
6290
发布2022-11-16 14:23:20
举报
文章被收录于专栏:许唯宇许唯宇

有些项目不支持utf8mb4字符,虽然可以转换数据库字符编码,但是原生代码并不支持,表情/特殊符号存入数据库报错,或者项目一遇到版本升级或者打补丁就不行了,各种奇怪的错误。最近有个需求是在存入mysql前把utf8mb4字符替换(过滤),然后剩余的utf8字符存入数据库。

代码语言:javascript
复制
# 示例1
$str1 = preg_replace('/[\x{10000}-\x{10FFFF}]/u', '', $str);
var_dump($str1);

# 示例2 包含更多非法字符
function filter_Emoji($string){
    $string = preg_replace('/[\x{1F600}-\x{1F64F}]/u', '', $string);
    $string = preg_replace('/[\x{1F300}-\x{1F5FF}]/u', '', $string);
    $string = preg_replace('/[\x{1F680}-\x{1F6FF}]/u', '', $string);
    $string = preg_replace('/[\x{2600}-\x{26FF}]/u', '', $string);
    $string = preg_replace('/[\x{2700}-\x{27BF}]/u', '', $string);
    $string = preg_replace('/[\x{10000}-\x{10FFFF}]/u', '', $string);
    $string = str_replace(array('"','\''), '', $string);
    return addslashes(trim($string));
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-11-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档