前几日晚上对着屏幕调一段从文档里抄来的脚本,编译一遍过一遍过,可跑起来偏偏不对。变量名看着一模一样,比对到眼睛发酸也挑不出错。后来才晓得,是某个变量里藏了个零宽字符,像戏台上隐去的角儿,台下的人愣是看不见,它却把整出戏的节奏带偏了。
这种事其实很常见。仔细想想从网页、聊天框、或是中英文混排里拷代码,冷不丁就夹进全角空格或 \u200b 这类不显形的东西。它们不占地方,编辑器里也悄无声息,偏在文件路径、JSON 的键名上作祟,惹出些怎么也报不到点上的错。
我现在的习惯是先把编辑器的显示不可见字符打开,像把灯捻亮了再找人。真遇上棘手的,就写个小脚本扫一遍特殊码位,谁藏谁现形。btw 你们有没有被这种看不见的东西坑过,后来怎么揪出来的?