2009-07-16 17 views
5

मैं प्रयोगात्मक रोबोट वाले कुछ पृष्ठों को अपडेट करने के लिए MediaWiki API का उपयोग कर रहा हूं। यह रोबोट पृष्ठों को अद्यतन करने के लिए जावा अपाचे 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) ठीक दिखता है, लेकिन विकी में accentuated वर्ण खराब लग रहे हैं। जैसे 'Valérie' के बजाय 'Val rie'।

मैं इसे कैसे ठीक कर सकता हूं?

उत्तर

3

ठीक है, अनुरोध हेडर बदलने से समस्या ठीक हो गई है।

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

मीडियाविकि एपीआई से बात करने के लिए मेरे PHP कोड में मैंने शीर्षक पैरामीटर को एन्कोड करने के लिए urlencode का उपयोग किया, और यह ठीक काम करता प्रतीत होता है।

+0

हाय रोडरिक :-) धन्यवाद, लेकिन मुझे नहीं लगता कि यह समस्या है। POST क्वेरी भेजते समय 'addParameters' विधियां डेटा को पहले ही परिवर्तित कर देती हैं। समाधान यहां हो सकता है: http://tinyurl.com/lyxv8c। मैं कल जांच करूंगा। – Pierre

संबंधित मुद्दे