MediaWiki API и кодировка - PullRequest
       42

MediaWiki API и кодировка

5 голосов
/ 16 июля 2009

Я использую MediaWiki API для обновления некоторых страниц с помощью экспериментального робота. Этот робот использует библиотеку HTTP-клиента Java Apache для обновления страниц.

(...)
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) выглядит нормально, но подчеркнутые символы в вики выглядят плохо. Например. «Валери» вместо «Валери».

Как я могу это исправить?

Ответы [ 2 ]

3 голосов
/ 17 июля 2009

ОК, изменение заголовка запроса решило проблему.

postMethod.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
0 голосов
/ 16 июля 2009

В своем PHP-коде для общения с Mediawiki API я использовал urlencode для кодирования параметра title, и это, кажется, работает нормально.

...