问题标签 [null-character]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
24288 浏览

vb.net - 如何从字符串中删除空字符(零字符)

我一直试图从我的字符串中删除所有零字符

我的字符串是由这些十六进制字节组成的

00 44 00 65 00 6C 00 70 00 68 00 69

对于每个字母,前面都有一个零字节(空字节)。我猜我必须使用某种 Unicode 编码或宽编码来获取没有这些零的文本。

但我想不通,所以我认为最好的方法是使用替换,但即使这样也失败了。

0 投票
2 回答
781 浏览

ruby - 如何从文件中删除所有空字符?

我有一个包含很多 PGN 国际象棋文件的目录,我想从中删除移动时间(写为[%emt {a_number}]。我写了这个脚本:

这删除了所有的移动时间,但奇怪的是它在文件的开头附加了大量的空字符(我怀疑这个数字等于文件中的字节数)。所以我用 替换了这一行new_contents = contents.gsub(regex, "")contents.delete("\0")但这只会让情况变得更糟,在文件的开头附加了更多的空字符。我怎样才能删除它们?

0 投票
3 回答
1752 浏览

c - C中的字符串异或函数:如何处理空字符?

我正在用 C 语言编写一个程序,它从文件中读取文本,将密码作为参数,创建一个与输入字符串长度相同的字符串,并对它进行逐字符异或运算,输出编码文本到另一个文件,然后可以通过相同的过程将其反转。我的问题是这样的:字符 XOR 本身就是 ASCII 空字符,这导致我在某处读写时遇到麻烦。我不确定 ASCII 0 是否被读取为 EOF、'\0',或两者兼而有之。我的代码的输入部分如下所示:

我的输出部分如下所示:

我的 XOR 函数如下所示:

当我的编码文件是“我喜欢书!”时,这是一个问题。我的密码是“foo”,因为它去了

在此示例中,我的输出文件显示 F,但不显示 G,这意味着它以空字符结尾。有没有办法让空字符通过这个过程,可能涉及长度?抱歉发了这么长的帖子,感谢您的宝贵时间!

0 投票
2 回答
1765 浏览

python - Python 从 Telnet 读取直到空字符

我正在远程登录到我的服务器,该服务器用消息回答我,并且在每条消息的末尾附加了无法读取的 hex00(空字符)。我尝试通过搜索,但似乎无法使其工作,一个简单的例子:

这将返回一个输出:

而应该有这样的东西:

有没有办法得到这个字符串字符的结尾?如果故意遗漏字符,我可以获取字节作为输出吗?

00 字符在那里:

tcpdump

0 投票
1 回答
774 浏览

encryption - RSA 对 '\0' 的 ASCII 消息问题

我想使用用汇编语言编写的 RSA 算法来加密和解密 ASCII 消息。我读到出于安全和效率的原因,加密通常不称为字符加密,而是将许多字符分组并加密在一起(例如,维基百科说 3 个字符被分组)。让我们假设我们要加密包含 2 个字符的消息“aaa”。“aaa”存储为 61616100。如果我们将两个字符分组并加密生成的半字,则 6161 块的结果实际上可能类似于 0053。这将导致人为的第二个 '\0' 字符破坏生成的消息。有没有办法解决这个问题?不幸的是,使用填充或类似的东西不是一个选项,因为我需要使用相同的函数来加密和解密。

0 投票
2 回答
338 浏览

c++ - C++:关于空字符

有两个string变量,mn

我以为两者都有 8 个字符,但m只有 7 个字符和n8 个字符。为什么会这样?

0 投票
1 回答
301 浏览

bash - Trying to grep a find -print0 causes strange behavior

I have a folder full of directories/files with spaces in their names, and I want to copy all of the *.ttf files to another directory except for the folders Consolas and System Volume Information. Following this post, I tried:

For some reason, this results in a Binary file (standard input) matches message from the first grep. Using egrep to combine the filters, I attempted:

But in this case, egrep will print out nothing to the terminal, even though there are plenty of other folders besides System Volume Information and Consolas. When I removed all but the find part of the command, I got one large chunk of text with no newlines, because of the -print0 option. Since the whole block included Consolas, by omitting it I was omitting everything. I confirmed this when I tried doing a grep Arial on the results and the whole block was printed out.

How should I prevent this behavior in grep?

0 投票
0 回答
616 浏览

vb.net - VB.net 空字符

我正在附加一个非常大的文本文件,但是当它完成并查看它时,我收到以下错误。文件中包含空字符 (00H)。这是我用来将所有文本文件读取到一个大文本文件的代码。我在 EmEditor 中打开大文件。

感激地收到任何帮助。

0 投票
1 回答
144 浏览

git - Git 存储库的文件名中是否禁止使用 ɴᴜʟ 字符?

在不考虑任何实现行为或主机ᴏꜱ的情况下,是否存在设计上不允许在文件或目录名称中使用的字符?

如果允许 ᴀꜱᴄɪɪ ɴᴜʟ 字符,我特别感兴趣(考虑到 Git 有时用作前端) 。
如果不允许这样做,是否可以尝试创建具有坚固性的此类文件导致远程代码执行?

0 投票
2 回答
1173 浏览

c - c中的字符串初始化

我对 C 编程很陌生,所以请随时纠正我,我坚持。我对 C 中的字符串的基本理解是,当我们初始化一个字符串时,会在字符串的末尾自动分配一个空字符,并且空字符不能读取或写入,而是仅在内部使用。

因此,当我创建一个大小为 4 as 的字符串char str[3]并为其分配一个单词“RED”并使用 puts 函数或打印它时printf("%s",str),我得到一个不寻常的输出打印为RED(SMIILEY FACE)

然后我再次减小字符串的大小char str[2]并将 RED 分配给它,然后编译它并再次收到一个输出说明RE(Smiley face)

如果有人可以向我解释,我将不胜感激。在下面发布C代码