[C#]string結尾多了亂碼

最近開發過程中遇到了一個有趣的問題,讀取Excel值存入資料庫結果結尾多了亂碼。

【開發環境】
開發工具:Visual Studio 2017

眼見不為憑,我想大家都有聽說過有些資料來源會有結尾符號或換行符號,這個案例就是最好的例子。

這是一個簡單的需求讀取Excel存入資料庫,但資料庫的結果就多出了一個「?」…

明明資料看起來只有8碼,但檢查Length長度卻多了1碼!? 

使用ToCharArray()就可看到多了一個「8203」(Unicode Character 'ZERO WIDTH SPACE'),既然知道是多了什麼我們就能好好的處理了。

【解決方法】
將來源資料Replace掉\u200B就大功告成囉!

new_product_id.Replace("\u200B", "")

【參考資料】
https://www.fileformat.info/info/unicode/char/200b/index.htm
https://stackoverflow.com/questions/24942167/simplest-way-to-get-rid-of-zero-width-space-in-c-sharp-string