2011-04-18 14 views
6

मैं एक्सप्रेस के साथ node.js का उपयोग कर रहा हूँ। मैंने मोंगो डीबी से मोंगोस के साथ डेटा पढ़ा और इसे res.send(data) के साथ सामान्य तरीका प्रदान किया। दुर्भाग्यवश कुछ अनुरोधों के लिए वितरण विफल रहता है। यहां तक ​​कि हेडर का कहना है कि एन्कोडिंग utf-8 है, ऐसा लगता है कि कुछ मामलों में एएनएसआई है, जिससे jsonp कॉलबैक फ़ंक्शन किसी त्रुटि के साथ विफल हो जाता है।node.js में डेटा को utf-8 में कैसे परिवर्तित करें?

आप इस पृष्ठ पर त्रुटि को पुन: उत्पन्न कर सकते हैं: http://like-my-style.com/#!single/9837034। जेसनपी कॉल कुछ उत्पादों पर विफल रहता है, उनमें से अधिकतर (विशेष वर्ण वाले भी) ठीक काम करते हैं।

मैं कैसे सुनिश्चित कर सकता हूं कि दिए गए स्ट्रिंग को node.js में utf-8 में एन्कोड किया गया है?

उत्तर

7

आप कोशिश की है।

0

आप एन्कोडिंग प्रकार

res.setEncoding('utf8');

की स्थापना कर रहे हैं?

res.send(data.toString("utf8")); 

सुनिश्चित करने के लिए कि आपके डेटा UTF8 में है और बफर नहीं है:

+2

यह एक त्रुटि फेंकता है: 'टाइप एरर: ऑब्जेक्ट # <सर्वर रेस्पॉन्स> में कोई विधि नहीं है' setEncoding'' – Thomas

+0

अजीब बात है। क्या आप हमें अपना कोड दिखा सकते हैं? संदर्भ के लिए इसे भी देखें> http://stackoverflow.com/questions/3691968/download-and-save-a-favicon-with-node-js – neebz

1

मुझे लगता है कि मैं इसी तरह के मुद्दे में फंस गया हूं और नेबेज समाधान काम करता है लेकिन मुझे इसे सही जगह पर रखना पड़ा।

var req = http.request(options, function(res) { 
    console.log("statusCode: ", res.statusCode); 
    console.log("headers: ", res.headers); 
    **res.setEncoding(encoding='utf8');** 
    res.on('data', function(d) { 
    console.log(d); 
    }); 
}); 

Node.js में request.setEncoding() जो एक त्रुटि हो सकती है क्योंकि इस पर रेस आपत्ति है कि अनुरोध द्वारा बनाई गई है कॉल किया जाना चाहिए के रूप में अपनी प्रलेखित डॉक्स।

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