删除“NUL”字符
Posted
技术标签:
【中文标题】删除“NUL”字符【英文标题】:Removing "NUL" characters 【发布时间】:2013-10-20 09:47:28 【问题描述】:我的记事本++中有这样的字符
当我试图复制整行时,我实际上是在复制所有内容,直到“NUL”:
File:1
我想要做的是替换那些 null,什么都不是,所以我可以复制我的整行。 也许有任何关键字会告诉notepad++(或任何其他可能有帮助的程序)替换这些字符? 当我选择它时,使用右键单击然后“清除”,它就消失了 - 但我不想一一做。
我不关心消除这个问题的原因,只关心效果(NULs)
【问题讨论】:
【参考方案1】:这可能会有所帮助,我曾经这样整理我的文件: http://security102.blogspot.ru/2010/04/findreplace-of-nul-objects-in-notepad.html
基本上你需要用正则表达式替换\x00个字符
【讨论】:
是的,这就是我想要的。非常感谢:) 请注意,您应该尝试“\x00”、“\00”或“\0”。对我来说,\x00 和 \00 不起作用。我需要使用 \0 作为替换字符。 @JohnAugust 非常感谢你。 \x00 一直在寻找“正常”空格以及 NUL 字符。 Thx 想在 .dmp 文件中搜索一大块多行文本。但是不幸的是,记事本对我来说崩溃了,可能是因为转储的大小【参考方案2】:尝试查找和替换。在查找文本框中键入 \x00,选中正则表达式选项。将替换文本框留空,然后单击全部替换。查找和替换的快捷键是 ctrl+H。
【讨论】:
使用 \x00 查找。您可能需要检查正则表达式选项。 你必须使用正则表达式,这个答案是错误的,因为显然你可以像这样复制一个特殊的字符 我根据 SO 的问题给出了答案,他是在记事本 ++ 上而不是记事本上问的。我不知道为什么人们对我的答案投反对票,而其他人却对 AlexShumilov 的答案投赞成票。【参考方案3】:突出显示单个空字符,goto find replace - 它通常会自动将突出显示的文本插入到查找框中。在替换框中输入空格或留空。
【讨论】:
这不适用于 Notepad++ 中的 NUL 字符。它确实适用于许多其他 ASCII 特殊字符,例如 BEL,但 NUL 只能使用扩展转义码或 RegEx 找到。【参考方案4】:点击搜索 --> 替换 --> 查找内容:\0 替换为:“空” 搜索模式:扩展 --> 全部替换
【讨论】:
扩展是为了什么?? @rimiro 在某种意义上扩展了特殊转义字符(基本的正则表达式元字符,如 \n 等),而不仅仅是键入的字符。【参考方案5】:我尝试使用 \x00,但在使用 C# 和 Regex 时它对我不起作用。我在以下方面取得了成功:
//The hexidecimal 0x0 is the null character
mystring.Contains(Convert.ToChar(0x0).ToString() );
// This will replace the character
mystring = mystring.Replace(Convert.ToChar(0x0).ToString(), "");
【讨论】:
这和Notepad++有什么关系? OP 询问了 notepad++ 或任何其他可能有帮助的程序。您能否用一些额外的代码更新答案以使其完整,以便它可以帮助 .Net 中的其他新手(即从驱动器读取文本文件,替换 nul 字符,保存回文本文件,我的意思是 this,以及如何在没有 VS 的情况下启动 C# 代码,例如只使用 csc.exe)。【参考方案6】:打开记事本++ 选择替换 (Ctrl/H) 查找内容:\x00 替换为: 单击单选按钮 正则表达式 点击全部替换
【讨论】:
【参考方案7】:我遇到了同样的问题。以上使我走上了正确的轨道,但在我的情况下并不完全正确。所做的工作密切相关:
在 Notepad++ 中打开文件 键入 Control-A(全选) 键入 Control-H(替换) 在“查找内容”中输入\x00
在“替换为”中留空
在“搜索模式”中选择“扩展”
然后点击“全部替换”
【讨论】:
以上是关于删除“NUL”字符的主要内容,如果未能解决你的问题,请参考以下文章
Eclipse报错An internal error occurred during: "J2EE Component Mapping Update". java.lang.Nul