国外有一档名为《Search Engine》(搜索引擎)的播客节目,每期会给听众们解答一个无法通过搜索引擎来获得答案的问题。在他们最新一期内容中提到,苹果的 iMessage 服务出现了一个奇怪的 bug:用语音输入带有 "&" 符号的消息,无法被发送。
虽然在中国,咱们已经很多年没有发过短信了,但苹果的 iMessage 也是有和微信一样直接发语音消息的功能的,而且它还更先进——人家有语音进度条!节目称,用户在 iMessage 里发语音消息,如果提到 "Dave & Buster's" 并发送给对方,对方却是收不到的。在对方那边,只会看到三个表示 " 对方正在输入中 " 的小点在闪动,然后就结束了,而消息并没有成功发过来,像是被撤回了一样。输入带 "&" 的 iMessage 语音消息在英语国家可太常见不过了,"Dave & Buster's" 是美国一家体育酒吧和餐厅的名字,提到它那可太正常了,但出现这样的 bug 确实有点奇怪。
在听到播客后,一位叫做 Guilherme Rambo 的 APP 开发者用两部 iPhone 复现了这个神奇小 bug。经过他分析,这个问题出在收信人这一方。他把手机插上 Mac 后,通过捕获日志发现了一个错误报告,稍加分析,结果就已经明朗了。这是因为苹果的语音转录引擎虽然能听懂 "Dave & Buster's",但是转录引擎没有正确处理 "&" 符号的 XHTML 编码,导致它被检测出错并停止解析,然后负责安全功能的 BlastDoor 出门拦截了这条消息。大概就是你提着两箱牛奶去见领导,领导以为牛奶盒子里面装的可能是 " 小海鲜 ",数额太大有点害怕,就拒收了,所以这个事情其实就是个乌龙。但苹果的字符漏洞已经不止一回了,比如 2024 年 8 月爆出在应用库搜索栏输入 ""::这 4 个字符就能导致 iPhone 崩溃、2022 年 4 月爆出由意大利国旗 Emoji 和一串信德文组成的神秘字符也能让所有苹果设备崩溃,只能说苹果的字符漏洞还是太多了。