JavaScript中unicode编码与String互转(三种方法)
2023-09-11 14:18:07 时间
1.引言
JS本身就支持unicode转string功能,一共有三种方式和String单个字符转unicode编码。
2.方法
//unicode转String 1. eval("'" + str + "'");//当str中有带分号'或者"时,会报错,此时改成eval('"' + str + '"')即可 2. (new Function("return '" + str + "'"))();//同上 3. unescape(str.replace(/\u/g, "%u")); //string转unicode(str字符的第i个) 1."\\u" + str.charCodeAt(i).toString(16);
3.样例
//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 + "'"); }
4.样例(包含英文的String)
如果String包含有英文时,转unicode编码时会产生\\u34这样子的,而JS自身的unicode转字符串不能识别这种类型不足4位的unicode嘛。此时string2unicode需要修改一下即可。
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
相关文章
- 原生JavaScript实现AJAX、JSONP
- Windows Store App JavaScript 开发:小球运动示例
- JSP编程中常用的JavaScript技术(转载)
- 第一百零八节,JavaScript,内置对象,Global对象字符串编码解码,Math对象数学公式
- Bootstrap3.0学习第十七轮(JavaScript插件——模态框)
- [Javascript] Natively Format JavaScript Dates and Times
- [Javascript] Wait for the Fastest JavaScript Promise to Be Fulfilled with Promise.any()
- [Javascript] Hide Properties from Showing Up in "for ... in" Loops in JavaScript
- [Javascript] Multiply Two Arrays over a Function in JavaScript
- [Algorithm] JavaScript Graph Data Structure
- [Javascript] Link to Other Objects through the JavaScript Prototype Chain
- [Javascript] JavaScript赋值时的传值与传址
- [Javascript] Funciton Expression
- [Javascript] Filter out Duplicates from Flat JavaScript Array with array.filter / reduce / Set
- [Javascript] Hide Properties from Showing Up in "for ... in" Loops in JavaScript
- [Javascript] Conditionally spread entries to a JavaScript object
- [Javascript] Replicate JavaScript Constructor Inheritance with Simple Objects (OLOO)
- [Javascript] JavaScript赋值时的传值与传址
- [Javascript] An Introduction to JSPM (JavaScript Package Manager)
- javascript (js)中的基本概念
- javaScript面向对象继承方法经典实现
- Stimulsoft Reports.JS JavaScript 2023.1.0报表工具
- 力扣——587. 安装栅栏(多种Java做法、JavaScript、C、python3做法)
- 【 华为OD机试 2023】字符串重新排序(C++ Java JavaScript Python)
- javascript转义unicode十六进制编码且带有反斜杠后的html
- web前端Javascript学习之了解JavaScript弹出框
- javascript primise本质——为了简化异步编码而针对异步操作的代理