以防 atom 也渲染 CR、EOL 字符
0-31 和 127 ASCII 码是不可打印字符
还有#2085相关
是否可以渲染不可打印的字符?
我刚刚调试了 20m 的 url 问题,因为我的绝对 url 前面有一个 Unicode 十进制代码,导致它被视为相对路径。
请允许我们启用程序员在他们的代码中不想要的这些奇怪字符的渲染。
+所有其他非图形代码点。
例子:
创建一个包含 U+200B (ZERO WIDTH SPACE) 格式字符的源代码文件,并在 VSCode 中打开它。
PS> [char]0x200B | Out-File .\zero_width_space.ps1 -Encoding utf8
以字节为单位的文件内容:
PS > [io.file]::ReadAllBytes('.\zero_width_space.ps1')
239
187
191
226
128
139
13
10
结果:
VSCode 在打开文件时不显示任何内容,即使 "editor.renderWhitespace"="all"
第一个 239 187 191(零宽度非中断空间)被解释为 BOM。
其余的 226 128 139 13 10 (零宽度空间) +(CR) + (LF) 是源代码文本。
背景。
在这种情况下,第二个代码点(零宽度空间)是特定源代码的语法错误。
源代码包含语法错误 => 重要的是能够在代码编辑器中显示不可见字符。
通常,如果在文档注释中明确使用,则可以选择在文本文件中显示 Unicode 格式的字符。
从网络浏览器粘贴文本时,格式化字符也可能是意外的垃圾。
甚至 BOM 字符也可以显示为完全透明的不可见字符。
最有用的评论
是否可以渲染不可打印的字符?