【发布时间】:2020-06-27 09:20:59
【问题描述】:
我尝试将字符串中的 oct 值转换为 char 我执行此逻辑,但它没有返回我想要的正确值。
decodeUnicodeChar(obj1) {
if (obj1 == null || obj1 == undefined)
return "";
var r = /\\u([\d\w]{4})/gi;
var r3 = /\\([\d\w]{3})/gi;
obj1 = obj1.replace(r, function (match, grp) {
return String.fromCharCode(parseInt(grp, 16));
}).replace(/\n/g, "<br>");
obj1 = unescape(obj1) ? unescape(obj1) : decodeURIComponent(obj1);
console.log(obj1);
document.write(obj1);
}
decodeUnicodeChar("Hello \361o")
电流输出:- 你好\361o
需要的输出:- Hello ño
【问题讨论】:
-
如果你有一个“八进制值”,为什么要使用基数 16?另外,为什么
361 o部分所需的输出没有anything?为什么要在字符串文字中使用反斜杠转义3?它不会有任何影响。它与Hello 361o是相同的字符串。如果您的字符串中需要文字反斜杠,您应该转义反斜杠。r3是干什么用的?你永远不会使用它......并且r期望在你的字符串中有一个u,它不存在。这里有很多问题...... -
对不起,我添加了错误的输出,现在输出就像现在看到的那样
标签: javascript utf-8