Visual Studio:字符串文字中的零宽度空格字符:检测和/或防止

Jon*_*der 6 string visual-studio

Visual Studio 允许将 unicode 字符零宽度空间 (U+200B)粘贴到代码编辑器中。这个字符(顾名思义)是不可见的。

这可能会导致令人讨厌的错误,例如我刚刚花时间进行故障排除的错误,当传递看起来无害的字符串文字时HttpWebRequest.CreateHttp(string url)抛出了一个。 UriFormatException"?http://www.umich.edu"

发生异常是因为该字符串文字中的第一个字符不是h,正如它所显示的那样,而是零宽度空间字符。当我从网页正文复制 URL 时,它被放在剪贴板上,当我在代码编辑器窗口中按 Ctrl+V 时,它被 Visual Studio 忠实地粘贴到我的代码中。

打开“查看空白”选项(编辑>高级>查看空白)并不会导致Visual Studio透露,有一个零宽度空格字符存在。

我希望 Visual Studio:

  • 当我的代码中的字符串文字中存在零宽度空格字符(或其他不可见字符)时,给出某种指示或警告,和/或
  • 首先防止将此类控制字符粘贴到代码编辑器中。

有没有办法让 Visual Studio 做到这一点?

4F2*_*A2E 6

Visual Studio Code 的 Gremlins 跟踪器对我有用。
https://github.com/nhoizey/vscode-gremlins

Ps:IntelliJ识别那些隐藏的麻烦字符OOTB

在此处输入图片说明


小智 5

自 2021 年 12 月起,Visual Studio Code 引入了不可见字符的突出显示功能。

\n

由此

\n

代码中的零宽度 unicode 字符错误

\n

对此

\n

零宽度 unicode 字符突出显示

\n

首选项 -> 设置(ctrl + ,) -> 搜索“不可见字符” -> 勾选“编辑器 \xe2\x80\xba Unicode 突出显示:不可见字符”

\n

VSC Unicode 亮点:隐形字符

\n

默认情况下此选项应处于启用状态。

\n