我有一个 JavaScript 代码,可以从我的博客 (Blogger) 的其他页面中提取 JSON 字符串,但这些字符串中的许多特殊字符是 as &#?????;
,其中?????
是一个最多 5 位的数字,或者类似于\74br /\76
,应该是<br />
.
两者都混合在同一个字符串中,并且似乎都是 ASCII,第一个是十进制/html,第二个是八进制。
如何使用 JavaScript 将这种混乱解码为各自的字符?是否有任何现有的功能或适当的解决方案?
我有一个 JavaScript 代码,可以从我的博客 (Blogger) 的其他页面中提取 JSON 字符串,但这些字符串中的许多特殊字符是 as &#?????;
,其中?????
是一个最多 5 位的数字,或者类似于\74br /\76
,应该是<br />
.
两者都混合在同一个字符串中,并且似乎都是 ASCII,第一个是十进制/html,第二个是八进制。
如何使用 JavaScript 将这种混乱解码为各自的字符?是否有任何现有的功能或适当的解决方案?
这些应该让你开始
function decodeHtmlNumeric( str ) {
return str.replace( /&#([0-9]{1,7});/g, function( g, m1 ){
return String.fromCharCode( parseInt( m1, 10 ) );
}).replace( /&#[xX]([0-9a-fA-F]{1,6});/g, function( g, m1 ){
return String.fromCharCode( parseInt( m1, 16 ) );
});
}
function decodeOctal( str ) {
return str.replace( /\\([0-7]+)/g, function( g, m1 ) {
return String.fromCharCode( parseInt( m1, 8 ) );
});
}
//Double \\ = one backslash
decodeOctal("\\74br /\\76"); //"<br />"
decodeHtmlNumeric("ÿ"); //"ÿ"