4

ここで、問題の言語が英語であり、使用される文字セットが基本的なASCII/ラテンアルファベットであると仮定します。

「短いURL」を生成する場合、最初に考えられるのは、大きな「コードセット」/アルファベットを使用して整数(データベース内の長いURLを参照するID)を高い「ベース」(URLに適したBase-たとえば、64)。私の特定のケースでは、最初にBase-36(数字、ラテン文字、大文字と小文字を区別しない)に正規化することを選択しました。

ただし、詳しく調べてみると、短縮URLジェネレーターが最終的にいたずらな単語やその他の一般的な単語を吐き出していることに気付く場合があります。これは非常に望ましくない場合があります。

「実際の単語」の生成を回避するための1つのオプションは、一般的な母音をすべて削除することです。

ヘッドルームをあまり犠牲にしない他の/より良い回避策はありますか?

4

4 に答える 4

2

母音を取り除くというあなたの考えは、ここであなたの最高のものになると思います。

ブラックリストや辞書の検索など、他のものは非常に面倒で、多くのメンテナンスが必要であり、最終的には失敗します。

于 2011-03-24T16:59:39.887 に答える
1

ベース30[0-9bcdfghj-np-tvwxz]に正規化することができます。これは、母音を生成しないため、実際の単語を生成しません。

于 2011-03-24T17:09:09.500 に答える
0

母音と子音を分離することができます(xxxddd_eeeaaa)。常に3文字より長い場合は、ののしり言葉で安全です。

または、ランダムに数字を挿入することもできます。

または、フィルターを作成することもできます。

3つのうち、私はおそらく最初のものに固執するでしょう。

于 2011-03-24T17:01:39.493 に答える
-1

1桁あたりの情報を少しだけ犠牲にすると同時に、できるだけ多くの意味を防ぐために、英語で最も頻繁に使用される文字を除外する必要があります。これは、単にすべての母音をスキップするよりもわずかに効率的です。

于 2011-03-26T01:37:04.353 に答える