在 Mediawiki 中,PAGENAME、PAGENAMEE 和 urlencode 中,哪一个实际存储在页面 table 中?

In Mediawiki, between PAGENAME, PAGENAMEE and urlencode, which one is actually stored in the Page table?

在我检查过的页面中,它们都是 return 相同的东西,但 Mediawiki 文档说存在差异。

我不担心差异,但页面中实际存储了哪一个 table?

知道了。我保存了页面 "Texas A & M" 并在页面 table 中显示为 "Texas_A_&_M".

根据 Mediawiki 的 Manual:PAGENAMEE_encoding 页面(我不能 post 超过两个链接),PAGENAME 是唯一将 & 符号转换为 & 而其他将其转换为 %26 的页面.

以下仍然不正确!

我以为是PAGENAME,结果PAGENAME居然没有用下划线代替空格

相反,我发现 here and here 您可以使用以下方法访问存储在页面 table 中的字符串:

$dbk = $title->getDBkey();

该片段是直接从 Mediawiki 代码中提取的。

似乎没有与此密钥相关联的魔法词。

我找不到数据库中 page_title 的来源,但看起来它只是页面名称替换了空格、引号和符号。也许它依赖于数据库。我正在使用 MySQL.

两者都不是。内部表示("DB key form")是没有命名空间的标题(在page_namespace中作为数字单独存储),空格替换为下划线。代码是here。因此,它既不是 {{PAGENAME}} 是 human-readable 标题,也不是 {{PAGENAMEE}}{{#urlencode:{{PAGENAME}}}} 有特殊情况的空格 -> 下划线。