4

在这里假设所讨论的语言是英语,并且使用的字符集是基本的 ASCII / 拉丁字母。

生成“短 URL”时,首先想到的往往是使用大型“代码集”/字母表将整数(可能是引用数据库中长 URL 的 ID)转换为高“基数”(URL-friendly Base- 64,例如)。在我的具体情况下,我首先选择规范化为 Base-36(数字、拉丁字母,不区分大小写)。

然而,经过仔细检查,人们可能会发现他们的短 URL 生成器最终会吐出顽皮的词或其他常见词,这可能是非常不受欢迎的。

避免生成“真实单词”的一种选择是去掉所有常见的元音。

是否有其他/更好的解决方法不会牺牲太多的净空?

4

4 回答 4

2

我认为你去掉元音的想法将是你最好的。

其他任何东西,比如黑名单、字典查找等,都将非常乏味,需要大量维护,最终会出错。

于 2011-03-24T16:59:39.887 回答
1

您可以标准化为 base-30 [0-9bcdfghj-np-tvwxz],它永远不会生成元音,因此不会生成真实的单词。

于 2011-03-24T17:09:09.500 回答
0

您可以将元音和辅音分开 (xxxddd_eeeaaa)。如果它总是超过三个字母,那么你可能会用诅咒词安全。

或者您可以随机插入数字。

或者您可以创建一个过滤器。

在这三个中,我可能会坚持第一个。

于 2011-03-24T17:01:39.493 回答
-1

为了每个数字只牺牲很少的信息,但同时尽可能多地避免含义,您可能应该省略最常用的英文字母。这将比简单地跳过所有元音更有效。

于 2011-03-26T01:37:04.353 回答