【发布时间】:2016-03-27 11:02:27
【问题描述】:
我构建了一个小脚本,允许我从 Google 搜索 API 获取关键字建议。
主要问题是响应是否包含特殊字符(如 à é ù 等):我的应用程序返回不可读的关键字,例如:�,�a,�a va,� majuscule,ï ¿½a marche,�,�a y est,�a 电影,�gag,�a il est revenu,�a va de soi,,[object Object]
这是我的 Node.js 脚本:
var express = require('express');
var request = require('request');
var app = express();
app.get('/sug', function (req, res) {
var KW = req.query.KW ;
console.time("Délai");
var url = "http://clients1.google.fr/complete/search?hl=fr&q=" + KW + "&json=t&client=hp";
request(url, function (err, resp, body) {
body = JSON.parse(body);
res.end(body.toString());
console.timeEnd("Délai");
});
});
app.listen(1337);
console.log('Serveur : OK');
拨打电话很容易,只需在浏览器中输入http://localhost:1337/sug?KW=ç。
你知道如何解决这个问题并让 utf-8 正常工作吗?
【问题讨论】:
-
您发布的 URL 是网络本地 URL,因此不在您网络上的任何人(即我们)都无法访问。
-
clients1.google.fr 响应存在问题。它是用“ISO-8859-1”编码的,它返回
["ç",["�","�a","� encoding","�in takvimi","�eyrek alt�n fiyat�","��plak k�zlar","�a��atay ulusoy","��plak kad�nlar","�ukurova �1\u20444niversitesi","�ocuk nas�l yap�l�r"],[],{"google:suggesttype":["QUERY","QUERY","QUERY","QUERY","QUERY","QUERY","QUERY","QUERY","QUERY","QUERY"]}]但是在转换成UTF-8之后,我们得到了奇怪的符号¿½,�a -
@vmkcom 那么为什么这个 URL 可以工作:clients1.google.fr/complete/… ??
-
@Tiddo 是的,你必须安装 node.js 并运行我的脚本才能在你的浏览器上看到它;)
-
因为您的浏览器支持
Content-TypeHTTP 响应标头并正确解释编码。
标签: javascript json node.js utf-8