俄罗斯/西里尔文新闻文章的永久链接

时间:2009-07-26 07:16:14

标签: python mysql model-view-controller

我基本上正在使用俄语的oldschool基于php cms的站点,所要求的许多新功能之一是永久链接。

截至目前,该网站目前只使用标准的非mvc'article.php?id = 50'。我正在浏览Russian wiki,这是我见过的唯一一个使用俄罗斯本土固定链接的俄罗斯网站。我想知道:

  1. 在字符使用方面有任何限制吗?这是否需要服务器端的任何类型的特殊设置或任何东西?
  2. 对于永久链接,我应该注意哪些角色?我需要的任何陷阱?
  3. 关于如何将永久链接存储在我的数据库中的任何提示?截至目前,表结构相对简单..只是一个文章表:
  4. id article_title article_snippet article_whole date_time

    我想在这个名为'permalink'的表中添加一个新列,它基本上会存储article_title的修改版本(到目前为止,我能想到的唯一一个特殊处理的字符是我将转换为的空间一个下划线)。

    1. 我应该如何格式化新的干净网址?我想的是:
    2. /物品/ 2009 /Заглавная_страница

      例如。

      顺便说一句,我将使用Pylons(一个python框架)和MySQL 5,虽然我对PostgreSQL开放,如果有任何奇怪的UTF8限制(我将之前的Latin1转换为UTF8的整个数据库)用iconv)。

1 个答案:

答案 0 :(得分:2)

目前的惯例是用UTF-8编码URL,然后用URL-escape(即%-escape)编码:

py> urllib.quote(u"articles/2009/Заглавная_страница".encode("utf-8"))
'articles/2009/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0'

在此之后,将不会有任何限制 - 即浏览器会将其识别为UTF-8,但他们肯定能够关注该链接。