这叫HTML Entities。
js中的解决方案
<script>
(function(window){
window.htmlentities = {
/**
* Converts a string to its html characters completely.
*
* @param {String} str String with unescaped HTML characters
**/
encode : function(str) {
var buf = [];
for (var i=str.length-1;i>=0;i--) {
buf.unshift(['&#', str[i].charCodeAt(), ';'].join(''));
}
return buf.join('');
},
/**
* Converts an html characterSet into its original character.
*
* @param {String} str htmlSet entities
**/
decode : function(str) {
return str.replace(/&#(\d+);/g, function(match, dec) {
return String.fromCharCode(dec);
});
}
};
})(window);
console.log(htmlentities.encode("世上最牢固的感情不是\"我爱你\",而是\"我习惯了有你\"。彼此依赖,才是最深的相爱。"));
</script>
输出一堆实体如下,浏览器可以直接解析成汉字。
世上最牢固的感情不是"我爱你",而是"我习惯了有你"。彼此依赖,才是最深的相爱。