最近写的小程序,因为每次接口都要经过MD5加密,需要将获取的用户昵称一起加密发送到后台,开始自己做的时候顺其自让,毫无知觉拿过来直接扔进去加密,直到用后台人员的微信测试,中文验签失败,几周前已经调整过中文验签的签名算法,后来发现……
他的微信昵称里有3个屁……
具体是什么屁……
你打开你的输入法的emoji你会发现,里面有各种表情,其中就有一个屁……
于是想到的方法,将特殊符号先去除,替换成指定符号,再扔进去加密,上代码:
{
nickName: name.replace(/\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g, "**")
//最后的两个星号是我替换的字符,一个特殊表情替换两个星号
}
至于为什么不是去除特殊表情,一开始第一反应是去除就好了,后来想到万一还有人只用特殊表情做昵称……那存进去的就是空字符串,到时候拿出来显示为空的,视觉不好看。