【问题标题】:invisible characters UTF-8 visual studio 2022隐形字符 UTF-8 Visual Studio 2022
【发布时间】:2022-01-23 06:06:31
【问题描述】:

我在 Visual Studio 2022 中看不到隐形字符,我不知道为什么。

为了实现这一点,我不得不将该行复制到记事本++并将编码更改为ANSI。 该行是:

@Html.TextAreaFor(m => m.Notes, new {​​​​​​​​ @class = "form-control", @style = "min-height:6em; resize:vertical;" }​​​​​​​​)

如果你把encodage改成UTF-8,你会看到不可见的字符。这怎么可能,通常我们去utf-8才能看到不可见的字符?

UTF8 格式的行

@Html.TextAreaFor(m => m.Notes, new {​​​​​​​​ @class = "form-control", @style = "min-height:6em; resize:vertical;" }​​​​​​​​)

我如何在 Visual Studio 中看到他的角色?

谢谢!

【问题讨论】:

  • 注意:避免使用“ANSI”。没有这样的字符集。 ANSI 是一个组织,人们对编码 ANSI 的看法,通常是一些 ECMA/ANSI/ISO 和微软自己的标准之间的某种混合。

标签: character-encoding visual-studio-2022


【解决方案1】:

我假设对于 ANSI,您的意思是 cp1252

cp1252 中的文本​ 相当于 UTF-8 中的字符 U+200B,它是“零宽度空间”的字符。

在源代码中应避免使用此类字符(但最终在内联文档中)。通常来源是网站的复制/粘贴,其中插入了一些隐藏空间来代替标签(例如更改字体或颜色)。我认为这是此类网站的错误,也是复制代码的错误。 注意:可能此类文本有其他来源(但重复序列通常暗示此类复制/粘贴错误)。

注意:对我来说,这似乎不是恶意使用 Unicode 字符(请参阅最近的 CVE 以了解此类恶意代码使用),但由于这些最近的 CVE,我真的建议删除此类字符。

有关更多信息,您可以查看https://en.wikipedia.org/wiki/Zero-width_space(此字符),以及https://en.wikipedia.org/wiki/Whitespace_character 中的其他空格(和零宽度空格)列表。

【讨论】:

  • 确实,自从项目编译以来,这些并不是真正的错误,但我希望看到它们被删除。它在智能上犯了错误
猜你喜欢
  • 1970-01-01
  • 2021-12-28
  • 2022-09-25
  • 2021-10-04
  • 2022-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
相关资源
最近更新 更多