0

我想写一个可逆的编码器和相应的解码器,这样任何字符串都可以被编码成一个合法的文件名,对应于Unix文件系统的文件命名规则。如何做到这一点?示例:“xyz.txt”是一个有效的文件名,而“xyz/.txt”不是。

4

1 回答 1

0

tl;博士:你的方法有缺陷。坚持文件系统的限制。它们很难优雅地克服(尤其是在没有引入你自己的,甚至更奇怪的限制的情况下)。


不可能制作出可严格解码的。您正在尝试将较大的域映射到较小的域,这意味着反向映射无法正确可逆。

这很容易用一个简单的例子来证明:你如何编码/使它可以反转?“简单,”你可能会说,“我会用令牌替换x。” 但是现在你怎么知道什么时候 anx是实际的x,什么时候 your是应该转换为x的“特殊” ?你不能。x/

您当然可以制作一个不太可能发生意外冲突的系统。例如,您可以将其更改/为.----


哦,同样,对于它的价值,大多数 unix 文件系统实际上认为除/空字符以外的任何字符都是有效字符(more)。显然,使用它是一件很痛苦的事情。

于 2013-01-30T09:57:55.143 回答