第一种
escape()和unescape()方法
escape() 方法能够把 ASCII之外的所有字符转换为 %xx 或 %uxxxx(x表示十六进制的数字)的转义序列。从 \u000 到 \u00ff 的 Unicode 字符由转义序列 %xx 替代,其他所有 Unicode 字符由 %uxxxx 序列替代。
如
var str = "编程最美";
console.log(escape(str));//返回"%u7F16%u7A0B%u6700%u7F8E"
与 escape() 方法对应,unescape() 方法能够对 escape() 编码的字符串进行解码。
unescape("%u7F16%u7A0B%u6700%u7F8E");//返回"编程最美"
如果前台展示时不想解码,可以在后台接收到escape() 方法处理的数据时可以用System.Web.HttpUtility.UrlDecode(str)处理下,获取到的就是编码前的数据了
第二种
// 转为unicode 编码
function encodeUnicode(str) {
var res = [];
for (var i = 0; i < str.length; i++) {
res[i] = ("00" + str.charCodeAt(i).toString(16)).slice(-4);
}
return "\\u" + res.join("\\u");
} // 解码
function decodeUnicode(str) {
str = str.replace(/\\/g, "%");
//转换中文
str = unescape(str);
//将其他受影响的转换回原来
str = str.replace(/%/g, "\\");
//对网址的链接进行处理
str = str.replace(/\\/g, "");
return str;
}