Javascript 解码组件无法从URL工作

Javascript 解码组件无法从URL工作,javascript,Javascript,我只是试着从URL中解码一个变量,但当它从变量中读取时,这是行不通的 当前URL为: 正如我在代码中提到的,我希望看到[fname]变量show被解码,但它显示:\u0645\u06cc\u0631\u0632\u0627 但这不是我想要解码的…首先,不要编写自己的URL解析器:使用内置的规范URL操作API,它将让您自动解析其: 您的字符串的编码方式与不兼容,它看起来像是escape()生成的,但不起作用: decodeURIComponent(escape("میرزا")) // Unc

我只是试着从URL中解码一个变量,但当它从变量中读取时,这是行不通的

当前URL为:

正如我在代码中提到的,我希望看到[fname]变量show被解码,但它显示:\u0645\u06cc\u0631\u0632\u0627
但这不是我想要解码的…

首先,不要编写自己的URL解析器:使用内置的规范URL操作API,它将让您自动解析其:

您的字符串的编码方式与不兼容,它看起来像是
escape()
生成的,但不起作用:

decodeURIComponent(escape("میرزا"))
// Uncaught URIError: URI malformed
相反,您希望使用


因此,要明确的是,无论您如何生成文本
“%u0645%u06cc%u0631%u0632%u0627”
都是不正确的,您需要使用任何方法来生成URI组件,它看起来像
“%D9%85%DB%8C%D8%B1%D8%B2%D8%A7”
。(可能这不是JavaScript,问题中没有指定。)

我找到了解决方案,url有unicode值,我只需要将其从unicode转换为普通文本,所以在这种情况下,Decodeuri组件确实有效

通过此函数,“\u0645\u06cc\u0631\u0632\u0627”可以转换为普通文本

    function unicodeToChar(text) {
        return text.replace(/\\u[\dA-F]{4}/gi,
               function (match) {
                   return String.fromCharCode(parseInt(match.replace(/\\u/g, ''), 16));
               });
    }

感谢什么是
getParameterByName
?您能给出一个从
fname
参数输出的示例吗?如果我直接将我的字符放在解码方法上,我希望它的工作结果是:decodeURIComponent('\u0645\u06cc\u0631\u0632\u0627'),但当它从变量中读取时,它不会工作。
decodeURIComponent(escape("میرزا"))
// Uncaught URIError: URI malformed
decodeURIComponent(encodeURIComponent("میرزا"))
// "میرزا"
    function unicodeToChar(text) {
        return text.replace(/\\u[\dA-F]{4}/gi,
               function (match) {
                   return String.fromCharCode(parseInt(match.replace(/\\u/g, ''), 16));
               });
    }