let url='https://www.xxx.com/index?type=1&name=蜡笔小新&busiSource=20&businessNo=01EF52E9F12C4A86968FAAD668E5C873'; url=url.replace(/[\u4e00-\u9fa5]/g, function ($) { return encodeURI($) }) console.log(url);//https: //www.xxx.com/index?type=1&name=%E8%9C%A1%E7%AC%94%E5%B0%8F%E6%96%B0&busiSource=20&businessNo=01EF52E9F12C4A86968FAAD668E5C873
js匹配中文汉字的正则:/[\u4e00-\u9fa5]/ g代表替换字符串中所有出现的汉字,不带g的话代表只替换字符串中第一个出现的中文汉字
var foo = '【你好】,【世界】'; //想要替换foo中的【】为指定字符串或者空,可以使用unicode的方法 foo= foo.replace(/\u3010/g,"");// \u3010 指的是【的unicode编码 foo= foo.replace(/\u3011/g,"");// \u3011 指的是】的unicode编码
在线转换工具
https://tool.chinaz.com/tools/unicode.aspx
使用原生JS转
//string2unicode var str_u='\u6211\u662f\u4e2d\u56fd\u4ebaChina'; var ret1 = eval("'" + str + "'");//我是中国人China var ret2 = (new Function("return '" + str + "'"))();//我是中国人China var ret3 = unescape(str.replace(/\u/g, "%u"));//我是中国人China //unicode2string var str = "我是中国人"; var str_u = string2unicode(str);//\u6211\u662f\u4e2d\u56fd\u4eba var str_s = unicode2string(str_u);// 我是中国人 function string2unicode(str){ var ret =""; for(var i=0; i<str.length; i++){ //var code = str.charCodeAt(i); //var code16 = code.toString(16); //var ustr = "\\u"+code16; //ret +=ustr; ret += "\\u" + str.charCodeAt(i).toString(16); } return ret; } function unicode2string(unicode){ return eval("'" + unicode + "'"); }
如果混合了英文,使用下面的方法
function string2unicode(str){ var ret =""; var ustr = ""; for(var i=0; i<str.length; i++){ var code = str.charCodeAt(i); var code16 = code.toString(16); if(code < 0xf){ ustr = "\\u"+"000"+code16; }else if(code < 0xff){ ustr = "\\u"+"00"+code16; }else if(code < 0xfff){ ustr = "\\u"+"0"+code16; }else{ ustr = "\\u"+code16; } ret +=ustr; //ret += "\\u" + str.charCodeAt(i).toString(16); } var str_u = string2unicode("中国人CN");//"\u4e2d\u56fd\u4eba\u0043\u004e" var str_s = unicode2string(str_u);//中国人CN