前阵子处理一批导出的CSV,程序死活匹配不上第一个表头,对着代码看了半天也没看出毛病。后来才搞清楚,那文件是带BOM的UTF-8,开头悄悄藏着三个肉眼看不见的字节(EF BB BF),被我当成表头第一个字段名的前缀吃掉了,自然怎么都对不齐。是呢
没事的这个坑真的很隐蔽,因为编辑器里根本显示不出来,你以为自己读到的就是"name",其实前面还挂着个隐身字符。谁第一次碰上都得懵一阵子,真不是咱们笨。
后来学乖了,读文本文件前先判断一下编码、把BOM剥掉,或者直接用能识别BOM的库。大家平时还踩过哪些这种"看不见的坑"呀,说出来一起避避雷~