5

私はMediaWikiAPIを使用して、実験的なロボットでいくつかのページを更新しています。このロボットは、JavaApacheHTTPクライアントライブラリを使用してページを更新します。

(...)
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);
(...)

ただし、「content」文字列にはいくつかのアクセントが含まれています。System.out.prinln(content)見た目は問題ありませんが、wikiの強調された文字は見栄えが悪くなります。例:「Valérie」の代わりに「Val�rie」。

どうすればこれを修正できますか?

4

2 に答える 2

3

OK、リクエストヘッダーを変更すると問題が修正されました。

postMethod.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
于 2009-07-17T07:27:50.073 に答える
0

Mediawiki APIと通信するためのPHPコードでは、urlencodeを使用してtitleパラメーターをエンコードしましたが、これは正常に機能しているようです。

于 2009-07-16T17:23:17.670 に答える