您可以使用regex将给定unicode范围内的任何字符替换为其html实体等效项。代码看起来像这样:
var encodedStr = rawStr.replace(/[\u00A0-\u9999<>\&]/gim, function(i) {
return '&#'+i.charCodeAt(0)+';';
});
此代码将用其html实体等效项替换给定范围内的所有字符(unicode00A0-9999,以及&符,大于和小于),这就是我们从中获得的unicode值&#nnn;
在哪里。nnn``charCodeAt
在此处查看其运行情况:(此示例在示例中使用jQuery作为元素选择器。上面的基本代码本身未使用jQuery)
进行这些转换并不能解决所有问题-请确保您使用的是UTF8字符编码,请确保您的数据库将字符串存储在UTF8中。根据系统字体配置和您无法控制的其他问题,您仍然可能会看到字符无法正确显示的情况。