简体   繁体   English

在 JavaScript 中编码 HTML 实体

[英]Encode HTML entities in JavaScript

I am working in a CMS which allows users to enter content.我在一个允许用户输入内容的 CMS 中工作。 The problem is that when they add symbols ® , it may not display well in all browsers.问题是当他们添加符号® ,它可能无法在所有浏览器中很好地显示。 I would like to set up a list of symbols that must be searched for, and then converted to the corresponding html entity.我想设置一个必须搜索的符号列表,然后转换为相应的html实体。 For example例如

® => ® ® => ®
& => & & => &
© => © © => ©
™ => ™ ™ => ™

After the conversion, it needs to be wrapped in a <sup> tag, resulting in this:转换后需要用<sup>标签包裹,结果如下:

® => <sup>&reg;</sup> ® => <sup>&reg;</sup>

Because a particular font size and padding style is necessary:因为需要特定的字体大小和填充样式:

sup { font-size: 0.6em; padding-top: 0.2em; }

Would the JavaScript be something like this? JavaScript 会是这样吗?

var regs = document.querySelectorAll('®');
  for ( var i = 0, l = imgs.length; i < l; ++i ) {
  var [?] = regs[i];
  var [?] = document.createElement('sup');
  img.parentNode.insertBefore([?]);
  div.appendChild([?]);
}

Where "[?]" means that there is something that I am not sure about.其中“[?]”表示有一些我不确定的事情。

Additional Details:额外细节:

  • I would like to do this with pure JavaScript, not something that requires a library like jQuery, thanks.我想用纯 JavaScript 来做到这一点,而不是需要像 jQuery 这样的库,谢谢。
  • Backend is Ruby后端是 Ruby
  • Using RefineryCMS which is built with Ruby on Rails使用由 Ruby on Rails 构建的 RefineryCMS

You can use regex to replace any character in a given unicode range with its html entity equivalent.您可以使用正则表达式将给定 unicode 范围内的任何字符替换为其等效的 html 实体。 The code would look something like this:代码看起来像这样:

var encodedStr = rawStr.replace(/[\u00A0-\u9999<>\&]/g, function(i) {
   return '&#'+i.charCodeAt(0)+';';
});

This code will replace all characters in the given range (unicode 00A0 - 9999, as well as ampersand, greater & less than) with their html entity equivalents, which is simply &#nnn;此代码将替换给定范围内的所有字符(unicode 00A0 - 9999,以及&符号,大于和小于)与其等效的 html 实体,这只是&#nnn; where nnn is the unicode value we get from charCodeAt .其中nnn是我们从charCodeAt获得的 unicode 值。

See it in action here: http://jsfiddle.net/E3EqX/13/ (this example uses jQuery for element selectors used in the example. The base code itself, above, does not use jQuery)在此处查看操作: http : //jsfiddle.net/E3EqX/13/ (此示例使用 jQuery 作为示例中使用的元素选择器。上面的基本代码本身不使用 jQuery)

Making these conversions does not solve all the problems -- make sure you're using UTF8 character encoding, make sure your database is storing the strings in UTF8.进行这些转换并不能解决所有问题——确保您使用的是 UTF8 字符编码,确保您的数据库以 UTF8 存储字符串。 You still may see instances where the characters do not display correctly, depending on system font configuration and other issues out of your control.仍然可能会看到字符显示不正确的情况,这取决于系统字体配置和您无法控制的其他问题。

Documentation文档

The currently accepted answer has several issues.当前接受的答案有几个问题。 This post explains them, and offers a more robust solution.这篇文章解释了它们,并提供了一个更强大的解决方案。 The solution suggested in that answer previously had:该答案中建议的解决方案以前有:

var encodedStr = rawStr.replace(/[\u00A0-\u9999<>\&]/gim, function(i) {
  return '&#' + i.charCodeAt(0) + ';';
});

The i flag is redundant since no Unicode symbol in the range from U+00A0 to U+9999 has an uppercase/lowercase variant that is outside of that same range. i标志是多余的,因为从 U+00A0 到 U+9999 范围内的任何 Unicode 符号都没有在同一范围之外的大写/小写变体。

The m flag is redundant because ^ or $ are not used in the regular expression. m标志是多余的,因为^$未在正则表达式中使用。

Why the range U+00A0 to U+9999?为什么范围是 U+00A0 到 U+9999? It seems arbitrary.似乎是随意的。

Anyway, for a solution that correctly encodes all except safe & printable ASCII symbols in the input (including astral symbols!), and implements all named character references (not just those in HTML4), use the he library (disclaimer: This library is mine).无论如何,对于在输入中正确编码除安全和可打印 ASCII 符号之外的所有符号(包括星形符号!)并实现所有命名字符引用(不仅仅是 HTML4 中的那些)的解决方案,请使用he(免责声明:这个库是我的) )。 From its README:从它的自述文件:

he (for “HTML entities”) is a robust HTML entity encoder/decoder written in JavaScript. he (代表“HTML 实体”)是一个用 JavaScript 编写的强大的 HTML 实体编码器/解码器。 It supports all standardized named character references as per HTML , handles ambiguous ampersands and other edge cases just like a browser would , has an extensive test suite, and — contrary to many other JavaScript solutions — he handles astral Unicode symbols just fine.它支持所有标准化的 HTML 命名字符引用像浏览器一样处理模糊的&符号和其他边缘情况,具有广泛的测试套件,并且——与许多其他 JavaScript 解决方案相反——可以很好地处理星体 Unicode 符号。 An online demo is available.提供在线演示。

Also see this relevant Stack Overflow answer .另请参阅此相关堆栈溢出答案

I had the same problem and created 2 functions to create entities and translate them back to normal characters.我遇到了同样的问题并创建了 2 个函数来创建实体并将它们转换回正常字符。 The following methods translate any string to HTML entities and back on String prototype以下方法将任何字符串转换为 HTML 实体并返回字符串原型

/**
 * Convert a string to HTML entities
 */
String.prototype.toHtmlEntities = function() {
    return this.replace(/./gm, function(s) {
        // return "&#" + s.charCodeAt(0) + ";";
        return (s.match(/[a-z0-9\s]+/i)) ? s : "&#" + s.charCodeAt(0) + ";";
    });
};

/**
 * Create string from HTML entities
 */
String.fromHtmlEntities = function(string) {
    return (string+"").replace(/&#\d+;/gm,function(s) {
        return String.fromCharCode(s.match(/\d+/gm)[0]);
    })
};

You can then use it as following:然后,您可以按如下方式使用它:

var str = "Test´†®¥¨©˙∫ø…ˆƒ∆÷∑™ƒ∆æø𣨠ƒ™en tést".toHtmlEntities();
console.log("Entities:", str);
console.log("String:", String.fromHtmlEntities(str));

Output in console:控制台输出:

Entities: &#68;&#105;&#116;&#32;&#105;&#115;&#32;&#101;&#180;&#8224;&#174;&#165;&#168;&#169;&#729;&#8747;&#248;&#8230;&#710;&#402;&#8710;&#247;&#8721;&#8482;&#402;&#8710;&#230;&#248;&#960;&#163;&#168;&#160;&#402;&#8482;&#101;&#110;&#32;&#116;&#163;&#101;&#233;&#115;&#116;
String: Dit is e´†®¥¨©˙∫ø…ˆƒ∆÷∑™ƒ∆æø𣨠ƒ™en t£eést 

Without any library, if you do not need to support IE < 9, you could create a html element and set its content with Node.textContent :没有任何库,如果您不需要支持 IE < 9,您可以创建一个 html 元素并使用Node.textContent设置其内容:

var str = "<this is not a tag>";
var p = document.createElement("p");
p.textContent = str;
var converted = p.innerHTML;

Here is an example: https://jsfiddle.net/1erdhehv/这是一个例子: https : //jsfiddle.net/1erdhehv/

Update: This only works for HTML tag entities (&, <, and >).更新:这仅适用于 HTML 标记实体(&、< 和 >)。

You can use this.你可以用这个。

var escapeChars = {
  '¢' : 'cent',
  '£' : 'pound',
  '¥' : 'yen',
  '€': 'euro',
  '©' :'copy',
  '®' : 'reg',
  '<' : 'lt',
  '>' : 'gt',
  '"' : 'quot',
  '&' : 'amp',
  '\'' : '#39'
};

var regexString = '[';
for(var key in escapeChars) {
  regexString += key;
}
regexString += ']';

var regex = new RegExp( regexString, 'g');

function escapeHTML(str) {
  return str.replace(regex, function(m) {
    return '&' + escapeChars[m] + ';';
  });
};

https://github.com/epeli/underscore.string/blob/master/escapeHTML.js https://github.com/epeli/underscore.string/blob/master/escapeHTML.js

var htmlEntities = {
    nbsp: ' ',
    cent: '¢',
    pound: '£',
    yen: '¥',
    euro: '€',
    copy: '©',
    reg: '®',
    lt: '<',
    gt: '>',
    quot: '"',
    amp: '&',
    apos: '\''
};

function unescapeHTML(str) {
    return str.replace(/\&([^;]+);/g, function (entity, entityCode) {
        var match;

        if (entityCode in htmlEntities) {
            return htmlEntities[entityCode];
            /*eslint no-cond-assign: 0*/
        } else if (match = entityCode.match(/^#x([\da-fA-F]+)$/)) {
            return String.fromCharCode(parseInt(match[1], 16));
            /*eslint no-cond-assign: 0*/
        } else if (match = entityCode.match(/^#(\d+)$/)) {
            return String.fromCharCode(~~match[1]);
        } else {
            return entity;
        }
    });
};

If you want to avoid encode html entities more than once如果您想避免多次编码 html 实体

function encodeHTML(str){
    return str.replace(/([\u00A0-\u9999<>&])(.|$)/g, function(full, char, next) {
      if(char !== '&' || next !== '#'){
        if(/[\u00A0-\u9999<>&]/.test(next))
          next = '&#' + next.charCodeAt(0) + ';';

        return '&#' + char.charCodeAt(0) + ';' + next;
      }

      return full;
    });
}

function decodeHTML(str){
    return str.replace(/&#([0-9]+);/g, function(full, int) {
        return String.fromCharCode(parseInt(int));
    });
}

# Example # 例子

var text = "<a>Content &#169; <#>&<&#># </a>";

text = encodeHTML(text);
console.log("Encode 1 times: " + text);

// &#60;a&#62;Content &#169; &#60;#&#62;&#38;&#60;&#38;#&#62;# &#60;/a&#62;

text = encodeHTML(text);
console.log("Encode 2 times: " + text);

// &#60;a&#62;Content &#169; &#60;#&#62;&#38;&#60;&#38;#&#62;# &#60;/a&#62;

text = decodeHTML(text);
console.log("Decoded: " + text);

// <a>Content © <#>&<&#># </a>

If you're already using jQuery, try html() .如果您已经在使用 jQuery,请尝试html()

$('<div>').text('<script>alert("gotcha!")</script>').html()
// "&lt;script&gt;alert("gotcha!")&lt;/script&gt;"

An in-memory text node is instantiated, and html() is called on it.实例化内存中的文本节点,并在其上调用html()

It's ugly, it wastes a bit of memory, and I have no idea if it's as thorough as something like the he library but if you're already using jQuery, maybe this is an option for you.它很丑,浪费了一点内存,我不知道它是否像he库一样彻底,但如果你已经在使用 jQuery,也许这对你来说是一个选择。

Taken from blog post Encode HTML entities with jQuery by Felix Geisendörfer.取自 Felix Geisendörfer 的博文Encode HTML entity with jQuery

HTML Special Characters & its ESCAPE CODES HTML 特殊字符及其ESCAPE CODES

Reserved Characters must be escaped by HTML: We can use a character escape to represent any Unicode character [Ex: & - U+00026] in HTML, XHTML or XML using only ASCII characters.保留字符必须由 HTML 转义:我们可以使用字符转义来表示 HTML、XHTML 或 XML 中的任何 Unicode 字符 [例如:& - U+00026] 仅使用 ASCII 字符。 Numeric character references [ Ex: ampersand(&) - &#38;数字字符引用[例如: &#38; (&) - &#38; ] & Named character references [Ex: &amp; ] & 命名字符引用[例如: &amp; ] are types of character escape used in markup . ] 是character escape used in markupcharacter escape used in markup类型。


Predefined Entities预定义实体

Original Character XML entity replacement XML numeric replacement原始字符XML 实体替换XML 数字替换
< &lt; < &lt; &#60; &#60;
> &gt; > &gt; &#62; &#62;
" &quot; &#34; &quot; &#34;
& &amp; & &amp; &#38; &#38;
' &apos; ' ' &#39; &#39;

To display HTML Tags as a normal form in web page we use <pre> , <code> tags or we can escape them.为了在网页中将 HTML 标签显示为普通形式,我们使用<pre><code>标签或者我们可以对它们进行转义。 Escaping the string by replacing with any occurrence of the "&" character by the string "&amp;"通过用字符串"&amp;"替换任何出现的"&"字符来转义字符串and any occurrences of the ">" character by the string "&gt;"以及字符串"&gt;" ">"出现的任何">"字符. . Ex: stackoverflow post例如: stackoverflow post

function escapeCharEntities() {
    var map = {
        "&": "&amp;",
        "<": "&lt;",
        ">": "&gt;",
        "\"": "&quot;",
        "'": "&apos;"
    };
    return map;
}

var mapkeys = '', mapvalues = '';
var html = {
    encodeRex : function () {
        return  new RegExp(mapkeys, 'g'); // "[&<>"']"
    }, 
    decodeRex : function () {
        return  new RegExp(mapvalues, 'g'); // "(&amp;|&lt;|&gt;|&quot;|&apos;)"
    },
    encodeMap : JSON.parse( JSON.stringify( escapeCharEntities () ) ), // json = {&: "&amp;", <: "&lt;", >: "&gt;", ": "&quot;", ': "&apos;"}
    decodeMap : JSON.parse( JSON.stringify( swapJsonKeyValues( escapeCharEntities () ) ) ),
    encode : function ( str ) {
        var encodeRexs = html.encodeRex();
        console.log('Encode Rex: ', encodeRexs); // /[&<>"']/gm
        return str.replace(encodeRexs, function(m) { console.log('Encode M: ', m); return html.encodeMap[m]; }); // m = < " > SpecialChars
    },
    decode : function ( str ) {
        var decodeRexs = html.decodeRex();
        console.log('Decode Rex: ', decodeRexs); // /(&amp;|&lt;|&gt;|&quot;|&apos;)/g
        return str.replace(decodeRexs, function(m) { console.log('Decode M: ', m); return html.decodeMap[m]; }); // m = &lt; &quot; &gt;
    }
};

function swapJsonKeyValues ( json ) {
    var count = Object.keys( json ).length;
    var obj = {};
    var keys = '[', val = '(', keysCount = 1;
    for(var key in json) {
        if ( json.hasOwnProperty( key ) ) {
            obj[ json[ key ] ] = key;
            keys += key;
            if( keysCount < count ) {
                val += json[ key ]+'|';
            } else {
                val += json[ key ];
            }
            keysCount++;
        }
    }
    keys += ']';    val  += ')';
    console.log( keys, ' == ', val);
    mapkeys = keys;
    mapvalues = val;
    return obj;
}

console.log('Encode: ', html.encode('<input type="password" name="password" value=""/>') ); 
console.log('Decode: ', html.decode(html.encode('<input type="password" name="password" value=""/>')) );

O/P:
Encode:  &lt;input type=&quot;password&quot; name=&quot;password&quot; value=&quot;&quot;/&gt;
Decode:  <input type="password" name="password" value=""/>
var htmlEntities = [
            {regex:/&/g,entity:'&amp;'},
            {regex:/>/g,entity:'&gt;'},
            {regex:/</g,entity:'&lt;'},
            {regex:/"/g,entity:'&quot;'},
            {regex:/á/g,entity:'&aacute;'},
            {regex:/é/g,entity:'&eacute;'},
            {regex:/í/g,entity:'&iacute;'},
            {regex:/ó/g,entity:'&oacute;'},
            {regex:/ú/g,entity:'&uacute;'}
        ];

total = <some string value>

for(v in htmlEntities){
    total = total.replace(htmlEntities[v].regex, htmlEntities[v].entity);
}

A array solution阵列解决方案

Sometimes you just want to encode every character... This function replaces "everything but nothing" in regxp.有时您只想对每个字符进行编码...此函数替换 regxp 中的“除任何之外的一切”。

function encode(e){return e.replace(/[^]/g,function(e){return"&#"+e.charCodeAt(0)+";"})}

 function encode(w) { return w.replace(/[^]/g, function(w) { return "&#" + w.charCodeAt(0) + ";"; }); } test.value=encode(document.body.innerHTML.trim());
 <textarea id=test rows=11 cols=55>www.WHAK.com</textarea>

Checkout the tutorial from Ourcodeworld Ourcodeworld - encode and decode html entities with javascript查看来自 Ourcodeworld Ourcodeworld的教程- 使用 javascript 编码和解码 html 实体

Most importantly, the he library example最重要的是,他图书馆的例子

he.encode('foo © bar ≠ baz ???? qux');
// → 'foo &#xA9; bar &#x2260; baz &#x1D306; qux'

// Passing an `options` object to `encode`, to explicitly encode all symbols:
he.encode('foo © bar ≠ baz ???? qux', {
 'encodeEverything': true
});

he.decode('foo &copy; bar &ne; baz &#x1D306; qux');
// → 'foo © bar ≠ baz ???? qux'

This library would probably make your coding easier and better managed.这个库可能会让你的编码更容易,更好地管理。 It is popular, regularly updated and follows the HTML spec.它很受欢迎,定期更新并遵循 HTML 规范。 It itself has no dependencies, as can be seen in the package.json它本身没有依赖关系,可以在package.json 中看到

Here is how I implemented the encoding.这是我实现编码的方式。 I took inspiration from the answers given above.我从上面给出的答案中获得灵感。

 function encodeHTML(str) { const code = { ' ' : '&nbsp;', '¢' : '&cent;', '£' : '&pound;', '¥' : '&yen;', '€' : '&euro;', '©' : '&copy;', '®' : '&reg;', '<' : '&lt;', '>' : '&gt;', '"' : '&quot;', '&' : '&amp;', '\\'' : '&apos;' }; return str.replace(/[\ -\香<>\\&''""]/gm, (i)=>code[i]); } // TEST console.log(encodeHTML("Dolce & Gabbana")); console.log(encodeHTML("Hamburgers < Pizza < Tacos")); console.log(encodeHTML("Sixty > twelve")); console.log(encodeHTML('Stuff in "quotation marks"')); console.log(encodeHTML("Schindler's List")); console.log(encodeHTML("<>"));

one of the Easy Way for Encode Or Decode HTML-entities编码或解码 HTML 实体的简便方法之一
just Call a Function with one argument...只用一个参数调用一个函数......

Decode HTML-entities解码 HTML 实体

function decodeHTMLEntities(text) {
  var textArea = document.createElement('textarea');
  textArea.innerHTML = text;
  return textArea.value;
}

Decode HTML-entities (JQuery)解码 HTML 实体 (JQuery)

function decodeHTMLEntities(text) {
  return $("<textarea/>").html(text).text();
}

Encode HTML-entities编码 HTML 实体

function encodeHTMLEntities(text) {
  var textArea = document.createElement('textarea');
  textArea.innerText = text;
  return textArea.innerHTML;
}

Encode HTML-entities (JQuery)编码 HTML 实体 (JQuery)

function encodeHTMLEntities(text) {
  return $("<textarea/>").text(text).html();
}

htmlentities() converts HTML Entities htmlentities()转换 HTML 实体

So we build a constant that will contain our html tags we want to convert.因此,我们构建了一个常量,其中包含我们要转换的 html 标签。

const htmlEntities = [ 
    {regex:'&',entity:'&amp;'},
    {regex:'>',entity:'&gt;'},
    {regex:'<',entity:'&lt;'} 
  ];

We build a function that will convert all corresponding html characters to string : Html ==> String我们构建了一个函数,将所有相应的 html 字符转换为字符串:Html ==> String

 function htmlentities (s){
    var reg; 
    for (v in htmlEntities) {
      reg = new RegExp(htmlEntities[v].regex, 'g');
      s = s.replace(reg, htmlEntities[v].entity);
    }
    return s;
  }

To decode, we build a reverse function that will convert all string to their equivalent html .为了解码,我们构建了一个反向函数,它将所有字符串转换为它们的等效 html 。 String ==> html字符串 ==> html

 function  html_entities_decode (s){
    var reg; 
    for (v in htmlEntities) {
      reg = new RegExp(htmlEntities[v].entity, 'g');
      s = s.replace(reg, htmlEntities[v].regex);
    }
    return s;
  
   }

After, We can encode all others special characters (é è ...) with encodeURIComponent()之后,我们可以使用 encodeURIComponent() 对所有其他特殊字符 (é è ...) 进行编码

Use Case用例

 var s  = '<div> God bless you guy   </div> '
 var h = encodeURIComponent(htmlentities(s));         /** To encode */
 h =  html_entities_decode(decodeURIComponent(h));     /** To decode */

function htmlEntityReplacer(encoded_text) { var decoded_text = encoded_text;函数 htmlEntityReplacer(encoded_text) { var decoded_text = encoding_text;

const all_entities = [{ /* source: https://www.w3schools.com/html/html_entities.asp */
    encoded: `&nbsp;`,
    decoded: ` `
}, {
    encoded: `&lt;`,
    decoded: `<`
}, {
    encoded: `&gt;`,
    decoded: `>`
}, {
    encoded: `&amp;`,
    decoded: `&`
}, {
    encoded: `&quot;`,
    decoded: `"`
}, {
    encoded: `&apos;`,
    decoded: `'`
}, {
    encoded: `&cent;`,
    decoded: `¢`
}, {
    encoded: `&pound;`,
    decoded: `£`
}, {
    encoded: `&yen;`,
    decoded: `yen`
}, {
    encoded: `&euro;`,
    decoded: `€`
}, {
    encoded: `&copy;`,
    decoded: `©`
}, {
    encoded: `&reg;`,
    decoded: `®`
}]
for (i = 0; i < all_entities.length; i++) {
    var decoded_text = decoded_text.replace(new RegExp(all_entities[i].encoded, 'g'), all_entities[i].decoded)
}
return decoded_text;

} }

// For node or vanilla // 对于节点或香草

您可以使用charCodeAt()方法检查指定字符的值是否大于 127,并使用toString(16)将其转换为数字字符引用。

replaceHtmlEntities(text) {
  var tagsToReplace = {
    '&amp;': '&',
    '&lt;': '<',
    '&gt;': '>',
  };
  var newtext = text;
  for (var tag in tagsToReplace) {
    if (Reflect.apply({}.hasOwnProperty, this, [tagsToReplace, tag])) {
      var regex = new RegExp(tag, 'g');
      newtext = newtext.replace(regex, tagsToReplace[tag]);
    }
  }
  return newtext;
}

 <!DOCTYPE html> <html> <style> button { backround: #ccc; padding: 14px; width: 400px; font-size: 32px; } #demo { font-size: 20px; font-family: Arial; font-weight: bold; } </style> <body> <p>Click the button to decode.</p> <button onclick="entitycode()">Html Code</button> <p id="demo"></p> <script> function entitycode() { var uri = "quotation = ark __ &apos; = apostrophe __ &amp; = ampersand __ &lt; = less-than __ &gt; = greater-than __ non- = reaking space __ &iexcl; = inverted exclamation mark __ &cent; = cent __ &pound; = pound __ &curren; = currency __ &yen; = yen __ &brvbar; = broken vertical bar __ &sect; = section __ &uml; = spacing diaeresis __ &copy; = copyright __ &ordf; = feminine ordinal indicator __ &laquo; = angle quotation mark (left) __ &not; = negation __ &shy; = soft hyphen __ &reg; = registered trademark __ &macr; = spacing macron __ &deg; = degree __ &plusmn; = plus-or-minus __ &sup2; = superscript 2 __ &sup3; = superscript 3 __ &acute; = spacing acute __ &micro; = micro __ &para; = paragraph __ &middot; = middle dot __ &cedil; = spacing cedilla __ &sup1; = superscript 1 __ &ordm; = masculine ordinal indicator __ &raquo; = angle quotation mark (right) __ &frac14; = fraction 1/4 __ &frac12; = fraction 1/2 __ &frac34; = fraction 3/4 __ &iquest; = inverted question mark __ &times; = multiplication __ &divide; = division __ &Agrave; = capital a, grave accent __ &Aacute; = capital a, acute accent __ &Acirc; = capital a, circumflex accent __ &Atilde; = capital a, tilde __ &Auml; = capital a, umlaut mark __ &Aring; = capital a, ring __ &AElig; = capital ae __ &Ccedil; = capital c, cedilla __ &Egrave; = capital e, grave accent __ &Eacute; = capital e, acute accent __ &Ecirc; = capital e, circumflex accent __ &Euml; = capital e, umlaut mark __ &Igrave; = capital i, grave accent __ &Iacute; = capital i, acute accent __ &Icirc; = capital i, circumflex accent __ &Iuml; = capital i, umlaut mark __ &ETH; = capital eth, Icelandic __ &Ntilde; = capital n, tilde __ &Ograve; = capital o, grave accent __ &Oacute; = capital o, acute accent __ &Ocirc; = capital o, circumflex accent __ &Otilde; = capital o, tilde __ &Ouml; = capital o, umlaut mark __ &Oslash; = capital o, slash __ &Ugrave; = capital u, grave accent __ &Uacute; = capital u, acute accent __ &Ucirc; = capital u, circumflex accent __ &Uuml; = capital u, umlaut mark __ &Yacute; = capital y, acute accent __ &THORN; = capital THORN, Icelandic __ &szlig; = small sharp s, German __ &agrave; = small a, grave accent __ &aacute; = small a, acute accent __ &acirc; = small a, circumflex accent __ &atilde; = small a, tilde __ &auml; = small a, umlaut mark __ &aring; = small a, ring __ &aelig; = small ae __ &ccedil; = small c, cedilla __ &egrave; = small e, grave accent __ &eacute; = small e, acute accent __ &ecirc; = small e, circumflex accent __ &euml; = small e, umlaut mark __ &igrave; = small i, grave accent __ &iacute; = small i, acute accent __ &icirc; = small i, circumflex accent __ &iuml; = small i, umlaut mark __ &eth; = small eth, Icelandic __ &ntilde; = small n, tilde __ &ograve; = small o, grave accent __ &oacute; = small o, acute accent __ &ocirc; = small o, circumflex accent __ &otilde; = small o, tilde __ &ouml; = small o, umlaut mark __ &oslash; = small o, slash __ &ugrave; = small u, grave accent __ &uacute; = small u, acute accent __ &ucirc; = small u, circumflex accent __ &uuml; = small u, umlaut mark __ &yacute; = small y, acute accent __ &thorn; = small thorn, Icelandic __ &yuml; = small y, umlaut mark"; var enc = encodeURI(uri); var dec = decodeURI(enc); var res = dec; document.getElementById("demo").innerHTML = res; } </script> </body> </html>

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

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