ybiks
@ybiks
Студент

Где может быть ошибка кодировки?

Пытаюсь написать запрос к Dydra(графовая база данных). Используя curl из консоли linux запрос выполняется как надо, в ответ я получаю json. Латиница отображается.
$ curl -H 'Accept: application/json' \http://dydra.com/ybiks/testmylib/sparql?query=select%20*%20where%20%7B%20%7B%20graph%20%3Fg%20%7B%3Fs%20%3Fp%20%3Fo%7D%20%7D%20union%20%7B%3Fs%20%3Fp%20%3Fo%7D%20%7D%20limit%2010
А вот если делать запрос из Node.js, то символы латиницы заменяются вопросительными знаками.
var curl = require('curlrequest');

var url = 'http://dydra.com/ybiks/testmylib/sparql?query=';
url += encodeURIComponent('select * where { { graph ?g {?s ?p ?o} } union {?s ?p ?o} } limit 10');//SPARQL запрос,  SQL для онтологий

//Сам запрос
curl.request({url: url, headers: { accept: 'application/json' }, include: true}, function(err, parts){
	if(err) throw err;
	console.log(parts)
});
P.S. Кодировку в модуле curl менял, не помогло
  • Вопрос задан
  • 229 просмотров
Решения вопроса 1
@Sayto
Передайте такие заголовки:
headers: { accept: 'application/json', 'accept-charset': 'utf-8' }

curlrequest первым спрашивает ISO-8859-1, поэтому в latin1 и приходит ответ.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы