2013-04-28 6 views
17

मैं अपने एपीआई पर यूटीएफ -8 समर्थन कैसे प्राप्त करूं? फिलहाल, इस तरह एक स्ट्रिंग आउटपुट:Node.js में UTF-8 कैसे प्राप्त करें?

name: "John D�m" 

बजाय:

name: "John Döm" 

चेकआउट नीचे app.js: आप में

var express = require('express'), 
    driver = require('./driver'); 

var app = express(); 

app.configure(function() { 
    app.use(express.logger('dev')); 
    app.use(express.bodyParser()); 
}); 

app.get('/drivers', driver.findAll); 

app.listen(3000); 
console.log('Up: http://127.0.0.1:3000/'); 
+3

जे एस के सभी तार, UTF8 हैं जब तक स्पष्ट कुछ और करने के लिए सेट तो यह जहां कहना मुश्किल है आपके त्रुटि से आ जाएगा। 'ड्राइवर 'क्या करता है? आपके द्वारा प्रदान किया गया कोड मानक बॉयलरप्लेट है और वास्तव में मदद नहीं करता है। – loganfsmyth

+0

'ड्राइवर 'एक mongoDB से सभी ड्राइवरों को पकड़ता है और सभी डेटा प्रिंट करता है। यहां लिंक देखें: http://xn--billstrm-t4a.se:1337/ – Jack

+0

@loganfsmyth 'driver = की आवश्यकता है ('./ driver'); 'यह उतना ही उतना ही है जितना: https: // gist। github.com/ccoenraets/3819468#file-wines-js – Jack

उत्तर

29

हुक जनरेटर प्रतिक्रिया या एक मध्यस्थ बनाने जो निम्न करता है:

res.header("Content-Type", "application/json; charset=utf-8"); 

अन्यथा ब्राउज़र सामग्री को अपने पसंदीदा एन्कोडिंग में प्रदर्शित करता है।

यदि यह आपकी मदद नहीं करता है तो डीबी शायद गलत एन्कोडिंग में है।

संपादित करें: चूंकि उत्तर लगभग 5 वर्ष पुराना है, इसलिए एपीआई बदल गई है। वर्तमान Node.js के लिए संस्करणों का उपयोग करें:

res.setHeader("Content-Type", "application/json; charset=utf-8"); 
+1

'res.charset = 'utf-8'' वही बात है, है ना? मुझे यह क्लीनर – franzlorenzon

+1

res.charset मेरे लिए काम नहीं करता है (नोडजेस 0.10.8) लेकिन यह जेसन-स्टाइल काम करता है: http://pastebin.com/NwcVEAra – loloof64

+0

क्या यह उत्तर अभी भी सही है? ... मुझे अपने कोड में कठिन समय है ... मैं अंक प्राप्त कर रहा हूं ... –

-4

मेरे समस्या इस के साथ हल:

res.writeHeader(200 , {"Content-Type" : "text/html; charset=utf-8"});

+2

के साथ काम करता है समस्याओं का कारण बनता है, अगर आप सामग्री वापस करना चाहते हैं लेकिन एक HTTP स्थिति कोड अन्य तो '200'। – TheHippo

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