%E2%80%8C的字符串问题,卡住三个小时。
在写搬砖平台的时候,在写接口的时候,由于方便经常复制网页里面的一些url或者单词。
今天差点掉坑了,shell终端输出的url都是正确的,但获取数据总是不对。
经过多次尝试发现url的最后面自动会添加了%E2%80%8C
https://open.loex.io/open/orderbook?market_pair=egoldlcny%E2%80%8C
像上面这样子,在输出的时候也看不到。
搞了很久,问题最后解决的,我把那整个函数重新写了一边,个人的感觉问题出在我复制粘贴的时候。
参考的解释:
unicode编码为65279的字符叫“ZERO WIDTH NO-BREAK SPACE”即没有宽度的空格符,本质上也是null值,但是不同于null。byte-order mark(BOM)是位于码点U+FEFF的统一码字符的名称。当以UTF-16或UTF-32来将UCS/统一码字符所组成的字符串编码时,这个字符被用来标示其字节序。它常被用来当做标示文件是以UTF-8、UTF-16或UTF-32编码的记号。说白了就是位于文本最前面用来标识该unicode编码的文本内容是以UTF-8、UTF-16或UTF-32编码的。通过查询发现windows的记事本程序在打开文本内容后会自动添加BOM,我怀疑是那个模块在编码的时候用记事本编辑过代码,然后在模板或其他可能的文件中添加了BOM。
参考链接:https://www.iteye.com/blog/lwjlaser-1319220
https://www.iteye.com/blog/justcoding-2159932