【发布时间】:2017-02-19 22:42:36
【问题描述】:
我有以下网址:
my.site/?param1=Økonomi¶m2=Penger
我正在使用这个函数来获取参数值:
function getQueryStringValue(url, key) {
var params = {};
var url_params = url.split("?", 2);
if (url_params.length > 1) {
var param_list = url_params[1].split("&");
param_list.map(function (param_str) {
var kv = param_str.split("=", 2);
params[kv[0]] = kv[1];
});
}
return (key in params)? decodeURIComponent(params[key]) : ''
}
记录结果时,这些是返回的值:
param1 = %C3%98konomi 和 param2 = Penger
在针对我的数据集查询此内容时,我无法获得与名为 Økonomi 且大写为 Ø 的结果相匹配的结果。如果我将数据更改为økonomi,我会得到一个匹配项。
那么编码后的 URI 值 %C3%98 不会返回 Ø 吗?我怎样才能确保它会?
【问题讨论】:
-
console.log(url)在getQueryStringValue中显示什么?decodeURIComponent('%C3%98')绝对应该是'Ø'。 -
您的整个网址是
%C3%98?有趣的。你如何打电话给getQueryStringValue并检查结果? -
整个 URL 日志:
param1=%C3%98konomi&param2=Penger我在 getJSON 函数中调用函数:var firma = getQueryStringValue(url, "param1"); -
而你
console.log(firma);并且结果仍然包含%C3%98? -
console.log(firma) 给出
Økonomi
标签: javascript regex utf-8