MediaWiki API 和编码

问题描述 投票:0回答:2

我正在使用 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”。

我该如何解决这个问题?

encoding mediawiki diacritics
2个回答
3
投票

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

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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.