Избегайте реальных английских слов в «коротких URL», не жертвуя слишком большим запасом - PullRequest
4 голосов
/ 24 марта 2011

При условии, что речь идет о английском языке, а используемые наборы символов - это базовый ASCII / латинский алфавит.

При создании «Коротких URL-адресов» первой мыслью часто является использование большого «кодового набора» / алфавита для преобразования целого числа (возможно, идентификатора, ссылающегося на длинный URL-адрес в вашей базе данных) в высокую «базу»(URL-дружественный Base-64, например).В моем конкретном случае я сначала решил нормализоваться до Base-36 (цифры, латинские буквы, без учета регистра).

Однако, при ближайшем рассмотрении можно обнаружить, что их генератор коротких URL-адресов в конечном итоге выплевывает непослушные слова или другие распространенные слова, что может быть весьма нежелательно.

Один из способов избежать создания "настоящих слов" - это просто удалить все общие гласные.

Существуют ли другие / лучшие обходные пути, которые не приносят в жертву слишком большой запас?

Ответы [ 4 ]

2 голосов
/ 24 марта 2011

Я думаю, твоя идея убрать гласные будет твоей лучшей.

Все остальное, например черные списки, поиск по словарям и т. Д., Будет просто невероятно утомительным, потребует много обслуживания и, в конечном счете, будет ошибочным.

1 голос
/ 24 марта 2011

Вы можете нормализовать до base-30 [0-9bcdfghj-np-tvwxz], который просто никогда не будет генерировать гласные и, следовательно, не генерировать настоящие слова.

0 голосов
/ 26 марта 2011

Чтобы жертвовать лишь малой информацией на одну цифру, но в то же время избегать как можно большего значения, вам, вероятно, следует опустить наиболее часто встречающиеся буквы на английском языке .Это будет немного эффективнее, чем просто пропустить все гласные.

0 голосов
/ 24 марта 2011

Вы можете разделить свои гласные и согласные (xxxddd_eeeaaa). Если оно всегда длиннее трех букв, вы, вероятно, в безопасности с ругательствами.

Или вы можете вставить числа случайным образом.

Или вы можете создать фильтр.

из трех, которые я, вероятно, придерживаюсь первого.

...