为什么Notepad ++ [NULL]字符不粘贴?

我是这个网站的新手,我不知道我是否提供足够的信息-我会尽力而为=)

如果您使用Notepad ++,那么您会知道我在说什么-当用户将.exe加载到Notepad ++中时,NUL / \x0字符将被{{ 1}},背景为黑色,文本为白色。我尝试将其粘贴到Visual Studio中,希望获得相同的输出,但是它只是粘贴了一些空格...

有人知道这是否是某种组合键吗?我想用NULL字符代替NULL,就像Notepad ++ =)

为什么Notepad ++ [NULL]字符不粘贴?

renqiu521 回答:为什么Notepad ++ [NULL]字符不粘贴?

Notepad ++可能使用自定义或特殊字体来显示这些特殊字符。此行为可能也不适用于所有文本编辑器。所以,他们不给他们看。
如果要编写一个可视化这些字符的文本编辑器,则可能需要以编程方式实现此行为。如果需要的话,查看notepad ++来源可能会有帮助。

,

回答您的问题。

这是00H双字节的符号表示形式。

您正在复制和粘贴值。 Notepad ++向您显示了用于替换这些值表示形式的符号(因为您已在该IDE中对其进行了配置)。

,

文本编辑器

据我所知,要使Visual Studio显示不可打印的字符,您需要从https://marketplace.visualstudio.com的市场中安装扩展程序。

一个这样的扩展名,我既没有尝试也没有推荐-我只是做了一个快速搜索,这是第一个结果-是 Invisible Character Visualizer

话虽如此,粘贴复制二进制文件是有风险的业务。


您可以先尝试编辑>高级>查看空白


二进制编辑器

要真正了解正在发生的情况,可以使用VS'二进制编辑器:File-> Open->(用...打开)选项-> Binary Editor->确定

enter image description here enter image description here enter image description here

,

Notepad ++是不同于常规记事本的富文本编辑器。它可以显示所有现代文本编辑器中常见的自定义图形。在记事本++遇到空字符的ASCII码时读取文件时,它不会显示任何内容,而是向用户界面添加字符串“ NULL”,将文本背景颜色设置为黑色,将文本颜色设置为白色,这就是您所看到的。您也可以在RTF编辑器中显示任何自定义样式。

注意: 这绝不是有效的解决方案。我显然遍历了两次读取字符串,只是为了利用已经存在的方法。可以一次完成手动操作。这只是为了提示您如何做。我也仔细地编写了代码,但是由于我目前没有工具而没有运行它。如有任何错误,我深表歉意。

第1步:按行读取文本文件(行以'\ n'结尾),并使用{{将字符串的所有空字符实例替换为字符串"NUL" 1}}。最后,将修改后的文本附加到您的String.Replace()

第2步:使用RichTextBox查找每个“ NUL”字的起始索引来遍历读取的行。使用这些索引,您可以从String.IndexOf()中选择文本,然后使用RichTextBoxRichTextBox.SelectionColor

为所选文本设置样式

RichTextBox.SelectionBackColor基本上只代表richTextBoxCursor

中每一行的起始索引
RichTextBox
本文链接:https://www.f2er.com/3168339.html

大家都在问