문제

나는 사용하고있다 Mediawiki API 실험 로봇으로 일부 페이지를 업데이트합니다. 이 로봇은 Java Apache HTTP-Client 라이브러리를 사용하여 페이지를 업데이트합니다.

(...)
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) 괜찮아 보이지만 위키의 강조 된 캐릭터는 나쁘게 보입니다. 예를 들어 'Valérie'대신 'Val.rie'.

이것을 어떻게 고칠 수 있습니까?

도움이 되었습니까?

해결책

자, 요청 헤더를 변경하면 문제가 해결되었습니다.

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

다른 팁

내 PHP 코드에서 내가 사용한 MediaWiki API와 대화 urlencode 제목 매개 변수를 인코딩하면 이것이 제대로 작동하는 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top