我需要一种方法来对网址中的&
和// "get_records.php?artist=Mumford%20%26%20Sons"
"get_records.php?artist=" + encodeURIComponent("Mumford & Sons");
// "get_records.php?artist=Gigi%20D'Agostinos"
"get_records.php?artist=" + encodeURIComponent("Gigi D'Agostino");
进行编码。请查看以下示例:
encodeURIComponent
'
不会对escape
进行编码。我可以改用:
,但我不赞成使用它。在这种情况下我该怎么办?创建自定义编码器?
我也会逃避其他角色:/
,.
,,
,!
,"11:59"
"200 km/h in the Wrong Lane"
"P.O.D."
"Everybody Else Is Doing It, So Why Can't We"
"Up!"
,例如,以下内容字符串
testProperty
因此,创建自定义编码器似乎是最佳选择。我可以使用替代方法吗?
答案 0 :(得分:1)
您必须自己实现此功能。
MDN涵盖了这个确切的主题。将他们的提案扩展到涵盖&
角色以及其他角色也应该是微不足道的。
要更加严格地遵守RFC 3986(保留!,',(,)和*),即使这些字符没有正式的URI分隔用途,也可以安全地使用以下内容:
function fixedEncodeURIComponent (str) { return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { return '%' + c.charCodeAt(0).toString(16); }); }
答案 1 :(得分:0)