繁体   English   中英

Javascript将Var转换为UTF8字符串

[英]Javascript convert Var to UTF8 string

我遇到了一个奇怪的情况,我似乎无法想象我的出路。 我有一个包含UTF8字符的字符串(转义)。 我已经尝试过decodeURIComponent(escape(str))以及一堆其他建议的修复程序,但尚未成功。

我已经编写了这个函数来获取字符串,找到转义的字符,并用直接的UTF8替换它们。

var unescapeUTF8 = function(str) {
    var matches = str.match(/\\u.{4}/g);
    if (matches == null) return str;
    for (var item of matches)
    {
        // testing
        console.log(new String(item));
    }
    ....
    ....
    ....
};

从测试开始,我知道如果我去new String("\ģ")我将返回一个字符串对象String {0: "ģ", length: 1, [[PrimitiveValue]]: "ģ"}

似乎无论我对上面函数中的字符串做了什么,我都无法将它从它转换为ģ

我通过打开开发人员工具并运行以下内容,设法在浏览器中“创建”该问题

var x = "\\u0123";
console.log(x); // == "\u0123"
new String(x); // == String {0: "\", 1: "u", 2: "1", 3: "3", 4: "2", 5: "4", length: 6, [[PrimitiveValue]]: "\u1324"}

任何人都可以想出如何将“x”转换为UTF8字符请...

由于这些转义序列乍一看是有效的JSON转义序列,因此最简单的方法是将字符串解析为JSON字符串:

 var x = "\\\ģ"; console.log(JSON.parse('"' + x + '"')); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM