Thursday, March 4, 2021

non-ascii character

我不小心寫出了一個 bug ,這個 bug 是在程式碼中錯誤地使用了 non-ascii character 。

我需要寫一個字串 "1280x720" ,正常來講,在打程式碼的時候,因為要使用 ascii characters ,所以中間的乘號會使用英文的 x 字母。然而,因為我是從網路找來的字串貼上的,於是,這個字串中間的乘號,就真的不小心變成了 code 215 ,也就是真正的「乘號」。最麻煩的地方是,這種 bug ,肉眼還幾乎看不出來!

事後去反省,該如何可以快速地去找出這種錯誤,大概研究了兩種可以輔助除錯的工具:


(1) 在 source code 資料夾下指令 

ack "[^\x00-\x7F]"

如此就會立刻找出 source code 資料裡,包含 non-ascii code 的地方。

(2) vim 的指令 ga 或是 :as 可以顯示 cursor 處的字元編碼。