你如何通过URL传递撇号? [英] How do you pass an apostrophe through a URL?
本文介绍了你如何通过URL传递撇号?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用 Node.js :
var s = 'Who\'s that girl?';
var url = 'http://graph.facebook.com/?text=' + encodeURIComponent(s);
request(url, POST, ...)
这不是工作! Facebook切断了我的短信...
This does not work! And Facebook cuts off my text...
完整代码:
function postToFacebook(fbid, access_token, data, next){
var uri = 'https://graph.facebook.com/'+String(fbid)+'/feed?access_token='+access_token;
var uri += '&' + querystring.stringify(data);
request({
'method':'POST',
'uri': uri,
},function(err,response,body){
next();
});
};
app.get('/test',function(req,res){
var d = {
'name':'Who\'s that girl?',
'link': 'http://example.com',
'caption': 'some caption...',
'description': 'some description...',
'picture': 'http://i.imgur.com/CmlrM.png',
};
postToFacebook(req.user.fb.id, req.user.fb.accessToken, d);
res.send('done');
});
Facebook在墙上贴了一个空白帖子。没有文字显示。没什么。
Facebook gets a blank post on the wall. No text shows. Nothing.
当我记录我的URI时,就是这样:
When I log my URI, it is this:
https://graph.facebook.com/1290502368/feed?access_token=2067022539347370|d7ae6f314515c918732eab36.1-1230602668|GtOJ-pi3ZBatd41tPvrHb0OIYyk&name=Who's%20that%20girl%3F&link=http%3A%2F%2Fexample.com&caption=some%20caption...&description=some%20description...&picture=http%3A%2F%2Fi.imgur.com%2FCmlrM.png
显然,如果您查看该URL,您会看到撇号未被正确编码。
Obviously if you take a look at that URL, you see that the apostrophe is not being encoded correctly.
推荐答案
我正在做类似的事情(也使用Node.js)并首先尝试使用JavaScript的内置 escape()函数,但它确实没有用。
I'm doing a similar thing (also with Node.js) and first tried using JavaScript's built-in escape() function, but it didn't really work.
以下是我最终获得搜索工作的方式。它可能只是一个侥幸:
Here's how I ended up getting search to work. It might just be a fluke:
function doMySearch(showTitle) {
showTitle = escapeShowTitle(showTitle)
var url = "http://graph.facebook.com/search?q=" + showTitle + "&type=page"
doSomethingWith(url)
}
function escapeShowTitle(title) {
title = title.replace(/'/g, "")
title = escape(title)
return title
}
doMySearch("America's Funniest home Videos")
这篇关于你如何通过URL传递撇号?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文