MediaWiki API 和编码

Posted

技术标签:

【中文标题】MediaWiki API 和编码【英文标题】:MediaWiki API and encoding 【发布时间】:2009-07-16 09:08:26 【问题描述】:

我正在使用MediaWiki API 使用实验机器人更新一些页面。 该机器人使用 Java Apache HTTP 客户端库来更新页面。

(...)
PostMethod postMethod = new PostMethod("http://mymediawikiinstallation/w/api.php");
postMethod.addParameter("action","edit");
postMethod.addParameter("title",page.replace(' ', '_'));
postMethod.addParameter("summary","trying to fix this accent problem");
postMethod.addParameter("text",content);
postMethod.addParameter("basetimestamp",basetimestamp);
postMethod.addParameter("starttimestamp",starttimestamp);
postMethod.addParameter("token",token);
postMethod.addParameter("notminor","");
postMethod.addParameter("format","xml");
int status = httpClient.executeMethod(postMethod);
(...)

但是,“内容”字符串包含一些重音符号。 System.out.prinln(content) 看起来不错,但是 wiki 中的强调字符看起来很糟糕。例如。 'Valérie' 而不是 'Valérie'。

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

好的,更改请求标头解决了问题。

postMethod.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded; charset=utf-8");

【讨论】:

【参考方案2】:

在我与 Mediawiki API 对话的 PHP 代码中,我使用 urlencode 对标题参数进行编码,这似乎工作正常。

【讨论】:

嗨 Roderic :-) 谢谢,但是,我不认为这是问题所在。 'addParameters' 方法在发送 POST 查询时已经转换了数据。可能是解决方案在这里:tinyurl.com/lyxv8c。我明天去看看。

以上是关于MediaWiki API 和编码的主要内容,如果未能解决你的问题,请参考以下文章

使用 mediawiki api 上传文件需要哪些权限?

使用 jQuery 的 MediaWiki API 没有响应

使用 mediawiki API 按原样显示***页面

如果使用 SendGrid API,则禁用 PHP mail() 函数

安装MediaWiki

MediaWiki的作用是啥?