原来 windows 是这么处理 wsl 里的文件名中特殊符号映射的

2021-04-10 23:48:12 +08:00
 Jat001

首先先在 wsl 了创建一个带特殊符合的文件,比如

touch 1:2

可以看到能正常显示

而在 windows 里变成了一个“大空格”

但其实这不是空格,而是 12,把中间的字符放到 google 搜索就能找到对应的 unicode 字符编码 U+F03A

而如果反过来,直接在 windows 里创建带特殊 unicode 字符的文件也是可以的,比如下图中的 3:4 就是我在 explorer 里直接创建的

当然其他 unix 允许而 win 不允许的符号也是有映射的,比如 ?U+F03F\U+F05C,而且这些字符在 docker on wsl2 里也是支持的

2879 次点击
所在节点    Windows
5 条回复
chinvo
2021-04-11 03:26:20 +08:00
: 本身是 NTFS 上合法的文件名, 代表 NTFS 流
longquanwo
2021-04-11 07:20:49 +08:00
你的 Windows10 系统是啥版本啊
Jat001
2021-04-11 13:51:46 +08:00
@longquanwo #2 Insider Preview Build 21354
agagega
2021-04-12 01:39:14 +08:00
macOS 也有类似的逻辑,Finder 里的 / 在命令行里是 :
no1xsyzy
2021-04-12 11:27:55 +08:00
@chinvo 准确地说不是合法 “文件名”,因为你不能添加多个 :
话说起来,U+F03A 在 JB 家里面会显示为一个电话

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

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

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

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

© 2021 V2EX