我%u2014
在互联网的狂野西部找到了(实际上是关于烂番茄的评论)。我记得在javascript中看到过类似的东西。我不记得它是否在字符串中,但我认为它是某种转义或 uri 转义。
我尝试decodeURIComponent('%u2014')
在控制台中运行并得到URIError: malformed URI sequence
. 有谁知道如何解码这个字符?出于某种原因\x
,我想到了,但我不知道为什么。
如何解码这个 unicode 字符?
我%u2014
在互联网的狂野西部找到了(实际上是关于烂番茄的评论)。我记得在javascript中看到过类似的东西。我不记得它是否在字符串中,但我认为它是某种转义或 uri 转义。
我尝试decodeURIComponent('%u2014')
在控制台中运行并得到URIError: malformed URI sequence
. 有谁知道如何解码这个字符?出于某种原因\x
,我想到了,但我不知道为什么。
如何解码这个 unicode 字符?
该格式%uNNNN
来自 JavaScript 函数escape()
- 它看起来有点像 URL 编码,但它不是,它是一种自定义(无意义)JS 特定的编码类型。
如果您从 JavaScript 代码处理它,那么明显的解药是unescape()
.
为此,您可以对这种模式使用 RegExp 并从它的匹配项中进行字符解码。不过,Afaik%uXXXX
格式不是推荐的做法。
var decodeUE = (function () {
var reg = /%u([\dA-F]{4})|%([\dA-F]{2})/ig,
helper = function (m, a, b) {
if (a) return String.fromCharCode(parseInt(a, 16));
if (b) return String.fromCharCode(parseInt(b, 16));
};
return function decodeUE(s) {
return s.replace(reg, helper);
};
}());
var enc = '%u2014 %33 %AF %u1A2B';
decodeUE(enc); // "— 3 ¯ ᨫ"