如何在文件名里输入 Unicode U+0000 这个字符

2021-12-16 02:37:20 +08:00
 czvatqin

rt ,Windows 环境下如何输入这个空字符到文件名里

1272 次点击
所在节点    问与答
9 条回复
ysc3839
2021-12-16 02:50:57 +08:00
绝大多数文件系统应该都不支持在文件名中包含 NULL 字符。
iBugOne
2021-12-16 03:55:55 +08:00
@ysc3839 说得对。Linux 的典型文件系统( ext, xfs 等)在允许用作文件名的字符这里已经做到极限了,除了零字符( C 语言风格字符串)、正斜杠(用作目录分隔符)之外的字符全都可以出现在文件名里。仅剩的例外是文件名不能是刚好 1 个或 2 个点(当前目录和上级目录)。
crab
2021-12-16 04:08:15 +08:00
0000 遇到直接截断了,剩下范围 31 个非打印字符不行的。
ysc3839
2021-12-16 17:47:17 +08:00
不包括 NULL 的话很简单
echo -ne '\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F' | xargs -0 touch
czvatqin
2021-12-16 22:12:24 +08:00
@crab 看我的附言里面他这个是怎么实现的...
crab
2021-12-17 00:31:58 +08:00
@czvatqin 这个是利用上传类似 文件名为 1.php[\x00].jpg ,后端处理遇到 00 截断后面的.jpg ,直接存储了文件名为 1.php 。
czvatqin
2021-12-17 13:27:29 +08:00
@crab 那这个 x00 如何输入?
crab
2021-12-17 14:06:02 +08:00
@czvatqin 浏览器下上传你要拦截下来包修改,如果直接发包就直接写 00 就可以啊。
czvatqin
2021-12-18 00:25:46 +08:00
@crab 但是我看他们还有传这个文件的截图...改包的话怎么截图....

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/822493

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX