最近遇到一個Token怎麼送都錯誤的問題,找遍了程式都找不到原因出在哪,最後沒招只好把傳輸的封包都截下來,看看到底哪邊出了問題,結果發現….
“Te6g5R?”
這串部分Token看起來沒有什麼特別的,但如果你把滑鼠放到最後”的位置開始用鍵盤的往前鍵遍覽整串字,你會發現在R”中間需要按兩次才跳得過去,從封包監視器看到的結果卻是多了一個”點”
[![](https://4.bp.blogspot.com/-XRCi-hr6diU/WHWjX1QA3RI/AAAAAAAAIDI/qTjeVZqBPm0M81EFKCe0Q1b_8UnOHU7dACLcB/s640/1.png)](https://4.bp.blogspot.com/-XRCi-hr6diU/WHWjX1QA3RI/AAAAAAAAIDI/qTjeVZqBPm0M81EFKCe0Q1b_8UnOHU7dACLcB/s1600/1.png)
保哥有篇文章提到類似的問題 : [魔鬼般的細節:使用 C# 的 String.Trim() 方法刪除空白字元](http://blog.miniasp.com/post/2014/01/15/C-Sharp-String-Trim-ZWSP-Zero-width-space.aspx)
雖然我碰到的字元跟文章中碰到的不同,但應該是類似的問題,用BackSpace把那個看不到的點移除掉後,API就都正常了。
紀錄一下,提醒自己以後可能是因為這種…..奇怪的事情導致的,不要只顧著埋頭找程式Bug
#更新
那個看不見的點應該是 : Unicode Character ‘ZERO WIDTH SPACE’