问题描述--生产bug11845-561091800001160598开户名是被保险人,支付对象选择被保险人,提交报错
问题:开户名是被保险人,支付对象选择被保险人,提交报错,实际情况支付对象和被保险人均是“刘发仁”,请核实代码
现检查,理赔核心库数据查询该人员姓名为 刘发仁;但是前段页面代码显示 刘发仁​ ;
场景重现:在永安通系统录入收款人信息,收款人录入 刘发仁​ ;保存后页面显示 刘发仁 实际值为 刘发仁​ ;建议永安通查看下数据库存储。
该数据流转到理赔核心后数据库显示 刘发仁 ,但是页面代码值为 刘发仁​ ,页面显示未 刘发仁 。
问题分析:​ 这个字符叫做Zero Width Space,中文可称为“零宽空白”,这个字符在主流文本编辑器中均没有任何显示效果,就像一只看不见、摸不着的幽灵。拷贝也会带上零宽空白。
在理赔核心录入该字符会存储到数据库可查实,但是在永安通录入该字符数据同步到理赔核心,此时在理赔数据库看不到该字符,猜测在永安通可查看该字符;该问题需要永安通协查
影响范围:添加收款人录入
解决方案 :替换特殊字符
var payeeName = $("#payeeName").val(); $("#payeeName").val(payeeName.replace(/\u200B/g,''));
-
$value = str_replace("\xe2\x80\x8b", '', $value);
-
$value = str_replace("\xe2\x80\x8c", '', $value);
这些字符其实就是排版过程中产生的,而排版使用的规范是Unicode编码标准