Pergunta

Eu estou usando o MediaWiki API para atualizar algumas páginas com um robô experimental . Este robô usa a biblioteca Java Apache HTTP-cliente para atualizar as páginas.

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

No entanto, a string 'conteúdo' contém alguns acentos. System.out.prinln(content) parece OK, mas os caracteres acentuados no mau wiki olhar. Por exemplo. 'Valrie' em vez de 'Valérie'.

Como posso corrigir isso?

Foi útil?

Solução

OK, alterando o cabeçalho de solicitação corrigiu o problema.

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

Outras dicas

No meu código PHP para falar com o MediaWiki API eu usei urlencode para codificar o parâmetro de título, e isso parece funcionar bem.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top