最近在写微信小程序,用到扫码功能的时候发现有个问题——如果对方生成的二维码是包含BOM字串的,那即便都是“你好世界”的字串,也都不相等……
比如这个二维码,扫码后会得到一个字串,内容是“你好!世界!!!!”,它和静态的“你好!世界!!!!”看起来一样,但是扫码之后字串的第一个字符(scanedText[0])的值是一个不可见的字符
小程序的官方回复说建议我尝试更换二维码。
那么问题就来了,如果是扫码的话我不可能控制所有人都使用不包含BOM头的二维码,这就涉及到去除BOM这个字符的操作。
我先后尝试了以下方法:
scanedText.replace('\ufeff','');
scanedText.replace(String.fromCharCode('\ufeff', ''));
最终扫码到有包含BOM的时候scanedText[0]还是那个看不见的字符……
请问到底如何通过JS去掉这个该死的BOM头啊……
想不到居然如此简单……
原来我多写了个u……