当前位置: 首页 > article >正文

PHP 去掉特殊不可见字符 “\u200e“

  • 描述
    最近在排查网站业务时,发现有数据匹配失败的情况
    肉眼上完全看不出问题所在
    当把字符串 【'M24308/23-14F‎'】复制出来发现 末尾有个不可见的字符

    使用删除键或左右移动时才会发现
    最后测试通过 var_dump 打印 发现这个"空字符"占了三个长度 (显示一个小点)

1. 通过了解,基本定位在 业务人员在 excel数据表 复制过程中,意外带来了这个 “不可见字符”
2. 我的目的,就是为了能满足 正常业务的字符串比对
    需要去掉 末尾的特殊字符
3. 测试发现,使用 trim()、mb_trim() 都无法去除,最终使用 preg_replace()可进行匹配替换 .
  • 测试代码
    通过多次测试,与借鉴网上经验,可参考如下测试代码:

    	$string = 'M24308/23-14F‎';
        var_dump($string);
    
        $lastChar = mb_substr($string, -1); // 获取最后一个字符
        var_dump($lastChar);
    
        $asciiValue = mb_ord($lastChar); // 获取最后一个字符的ASCII值
        var_dump( "最后一个字符的--ASCII值 是:".$asciiValue);
    
        $pattern = "/[\x{200b}-\x{200f}]/u";
        $str = preg_replace($pattern, "", $string);
        var_dump($str);
    
  • 运行结果

  • 处理代码如下

    		//处理型号(可能有 特殊不可见字符)
            $xingHao = $_notice['型号']??'';
            $pattern = "/[\x{200b}-\x{200f}]/u";
            $xingHao = preg_replace($pattern, "", $xingHao);
    
  • 参考
    php 去掉不可见字符串,php删除不可见的Unicode字符


http://www.kler.cn/a/419364.html

相关文章:

  • MyBatis-Plus介绍及基本使用
  • 王道考研编程题总结
  • 【python】图像、音频、视频等文件数据采集
  • 二分搜索(三)x的平方根
  • Wireshark常用功能使用说明
  • neo4j desktop版命令行中导入导出dump
  • Electron + vue3 打包之后不能跳转路由
  • 【网络篇】HTTP知识
  • vue基础之2:搭建vue开发环境、Hello小案例
  • 【单细胞数据库】癌症单细胞数据库CancerSEA
  • 在开发环境中,前端(手机端),后端(电脑端),那么应该如何设置iisExpress
  • MySQL 数据库学习教程一:开启数据库探索之旅
  • 24.useRequestAnimationFrame
  • C++面试基础知识:移动语义 Perfect Forwarding
  • Cesium 与 Leaflet:地理信息可视化技术比较
  • 掌上单片机实验室 — RT - Thread+ROS2 浅尝(26)
  • 服务器处理HTTP
  • Vim小白学习指南
  • Vue3 Ts 如何获取组件的类型
  • 项目二技巧一
  • Redis中常见的延迟问题
  • unity中控制相机跟随物体移动
  • AI服务器从HBM到CXL的技术变革
  • 【UG\NX二次开发-Block UI】指定方位 VisibleManipulatorHandles 设置控制器手柄可见
  • 小车AI视觉交互--2.颜色跟随
  • 每日速记10道java面试题06