从帖子标题生成一个唯一的字符串,如stackoverflow

Shy*_*yju 2 c# asp.net algorithm

如何从我的C#代码中的帖子标题生成唯一的字符串?与此帖子的网址中出现的内容类似.

Pas*_*TIN 17

实际上,字符串不需要是唯一的:如果您检查此帖子的URL:

http://stackoverflow.com/questions/1467402/generate-a-unique-string-from-the-post-title-like-stackoverflow
Run Code Online (Sandbox Code Playgroud)

"真正的"唯一部分是数字 - 这里,1467402它看起来像数据库中问题的标识符; 可能是某种自动递增/序列,它确保数据库服务器是唯一的.


实际上,您可以尝试自行检查"标题"部分是否重要:转到此URL:

http://stackoverflow.com/questions/1467402/glop
Run Code Online (Sandbox Code Playgroud)

虽然"标题"部分显然不在这里,但是这个URL会让你看到这个帖子;-)


URL中出现的"标题"有两个原因:

  • 当然,用户友好的URL更多
  • 更多搜索引擎/更好的参考网址

为了生成这个,有几件事要做:

  • 替换非ascii字符; 例如,'é'很可能被翻译成'e'
  • 用" - "作为单词分隔符替换你不能很好地替换的其他字符.

  • +1 - 我从未想过这个数字是数据库ID. (2认同)