MediaWikiのAPIおよびエンコーディング
-
16-09-2019 - |
質問
私は実験的なロボットとのいくつかのページを更新するために、 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)
はOKに見えますが、ウィキでアクセント文字が悪く見えます。例えば。代わりに 'ヴァレリー' の 'Valrie' ます。
私はこの問題を解決するにはどうすればよい?
解決
OK、問題を修正要求ヘッダーを変更する。
postMethod.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
他のヒント
私のPHPコードで、私はでurlencode のに使用のMediawiki APIと話をしますtitleパラメータを符号化し、これが正常に動作するようです。
所属していません StackOverflow