MediaWiki API und Kodieren
-
16-09-2019 - |
Frage
Ich bin mit dem MediaWiki API einigen Seiten mit einem experimentellen Roboter aktualisieren . Dieser Roboter verwendet die Java Apache HTTP-Client-Bibliothek, die Seiten zu aktualisieren.
(...)
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);
(...)
Doch der ‚Inhalt‘ Zeichenfolge enthält einige Akzente. System.out.prinln(content)
sieht nicht gut aus, aber die akzentuierte Zeichen im Wiki schlecht aussehen. Z.B. 'Valrie' anstelle von 'Valérie'.
Wie kann ich dieses Problem beheben?
Lösung
OK, die Änderung der Request-Header das Problem behoben.
postMethod.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
Andere Tipps
In meinem PHP-Code in die Mediawiki-API zu sprechen habe ich urlencode kodieren die Titel Parameter, und das scheint gut zu funktionieren.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow