簡體   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