前言
最近同事遇到在 XML 解析上發生問題,但資料肉眼卻看不出來異狀。
今天又在 stackoverflow 上看到C# Double Parsing Giving an error when it shouldn’t利用 double.parse 遇到 “240000” 時,卻會發生 Input string was not in a correct format 的錯誤。
研究
TheGeneral很快地發現,並不是 240000 有問題,而是他的資料”240000”中,有不可視字元。
所以如果用題問者的字串(t1),跟自已 key 一個字串(t2)來看,當 parse 到 t1 時,的確會發生錯誤,如下,
1 | var t1 = "240000"; |
上面肉眼來看,t1, t2 沒有差別,但將它們每個字串 print 出來後可以發現,t1 多了一個 ? ,unicode 為 202c,如下,
1 | var t1 = "240000"; |
所以當有類似的問題,而眼睛又看不出來時,可以將該內容的字元列印出來比對看看哦!