我正在尝试使用URL参数中的变音符号来获取建议:
function getRecommendations(auth, callback) {
var params = '+"olivenöl"';
var host = 'something.com';
var path = "/solr/cloud/select?q=*&fq=ingredient_t:(" + params + ")";
var options = {
"host": host,
"path": path,
"method": 'GET',
"headers": {
"Authorization": auth,
"Content-Type": "application/json",
"Accept": "application/json",
}
};
http.request(options, function (res) {
res.setEncoding('utf8');
var body = '';
res.on('data', function (d) {
body += d;
});
res.on('end', function () {
callback(body);
});
});
}
如果德语变音符号出现在URL参数中,则响应具有空的推荐列表。
我尝试编码为ö=> oe或ü=>呃...但是系统跳过参数不存在。
有人知道如何编码UMLAUTS吗?我也很困惑这个HTTP GET问题或Solr问题。
感谢您的帮助。
答案 0 :(得分:1)
在每种情况下,我建议使用var ingredient = encodeURIComponent(params);
var path = "/solr/cloud/select?q=*&wt=json&fq=ingredient_t:(" + ingredient + ")";
函数对查询字符串中传递的参数进行编码。
但我还建议测试您的Solr实例是否已正确配置为使用UMLAUTS特殊字符处理查询。
您可以直接使用浏览器执行此操作,例如使用UMLAUTS特殊字符执行查询。
这样我们就可以排除这是与您的Solr配置相关的问题,但它在您的node.js请求实现中。
另外一件事,只需仔细检查Solr是否返回json。如果您想确保在查询中添加#include <gtk/gtk.h>
void update_label(GtkLabel *glab);
void update_label(GtkLabel *glab)
{
}
int main(int argc, char *argv[])
{
GtkWidget *lbl;
gtk_init(&argc, &argv);
lbl = gtk_label_new("Hi");
update_label(lbl);
gtk_main();
return 0;
}
参数。
graeme@graeme-HP-xw4300-Workstation ~/c/label $ gcc `pkg-config --cflags gtk+-3.0` my04.c -o my04 `pkg-config --libs gtk+-3.0`
my04.c: In function ‘main’:
my04.c:17:3: warning: passing argument 1 of ‘update_label’ from incompatible pointer type [enabled by default]
update_label(lbl);
^
my04.c:5:6: note: expected ‘struct GtkLabel *’ but argument is of type ‘struct GtkWidget *’
void update_label(GtkLabel *glab)
^