Cmder PowerShell 視窗隱形字元地雷與 VSCode 新功能
2 |
對,我又踩到隱形字元的坑!
同樣是 D:\,一個說目錄不存在,一個說存在是什麼鬼。
將有問題的 "D:" 貼到中文編碼解析工具,茶包立刻現形,是常見的地雷隱形字元 - Zero Width Space 0x200b。
踩到隱形字元不是新鮮事,怎麼冒出來的比較值得追究。經驗中這類鬼字元多是複製 Word 或 PowerPoint 內容帶過來的,但我這是查程式問題過題遇到,與 Office 軟體完全沾不上邊。回想了一下,路徑是 Cmder 複製來的,莫非...
開啟 Cmder PowerShell 視窗,用滑鼠選取路徑再按滑鼠右鍵貼上可輕易重現問題,D:\ 前方的問號便是無法顯示的 0x200b。測試微軟原生 PowerShell 命名列視窗無此狀況,看起來是 Cmder 獨有的問題。有了這個經驗,下回從 Cmder 複製路徑,就知道要小心了。
講到這個,就不得不為 VSCode 拍拍手!
VSCode 在 1.63 版加入了「隱形 Unicode 字元提示」(Invisible Unicode Highlighting),上面那段程式在 VSCode 裡會像下圖,D:\ 前方會有個空心黃框,滑鼠移上去會說明這裡有個 0x200b 的坑:
是不是超貼心? 啊~~ 福氣啦!
Content copied from Cmder PowerShell prompt may include 0x200b, and I found VSCode's new feature invisible Unicode highlighting can help.
Comments
# by 小雞
(Invisible Unicode Highlighting) 連結沒寫好??
# by Jeffrey
to 小雞,謝謝提醒,已修正。