2015-06-23 2 views
1

Я борюсь с новым веб-приложением, которое я делаю. В предыдущих ситуациях я не могу вспомнить, что столкнулся с этой проблемой. Я тестирую очень простой код.Как я могу отправить JSON с ExpressJS как UTF-8?

var jsonToSend = {hello: "woørld"}; 
app.get('/someUrl', function(req, res) { 
    res.setHeader('Content-Type', 'application/json'); 
    res.send(jsonToSend); 
} 

Выход: {"hello":"Woørld"} с Content-Type:application/json; charset=utf-8 на вкладке сети. Я также пробовал различные попытки с JSON.stringify и добавлял charset к setHeader, хотя он кажется правильным на вкладке сети. Как я могу убедиться, что данные правильно закодированы с сервера?

Я использую WebStorm, и я проверил кодировку файла как UTF-8.

ответ

1

я понял, что этот вопрос должен был быть по отношению к моей IDE. Таким образом, этот ответ будет нацелен на тех из вас, кто использует WebStorm:

Я ранее запускал проект на своем компьютере с Windows, который преобразовал исходные файлы в кодировку windows-1252 вместо utf-8. Обязательно сделайте Preferences > File Encoding и установите всю кодировку в UTF-8 и конвертируйте старые файлы. Кодировка файла также помечена в окне настроек.

1

Попробуйте использовать res.set({ 'content-type': 'application/json; charset=utf-8' });:

var jsonToSend = {"\"hello"\": "\"woørld"\"}; 
app.get('/someUrl', function(req, res) { 
    res.setHeader('Content-Type', 'application/json'); 

    res.set({ 'content-type': 'application/json; charset=utf-8' }); 

    res.send(jsonToSend); 
} 
+0

По-видимому, у него есть правильный Content-Type, хотя он должен быть автоматическим с json. Все еще не закодируйте норвежские буквы. –

 Смежные вопросы

  • Нет связанных вопросов^_^