JavaScript中字符串与Unicode编码互相转换的实现方法
作者:铁锚
这篇文章主要介绍了JavaScript中字符串与Unicode编码互相转换的实现方法涉及JavaScript编码、数据类型等的转换技巧,需要的朋友可以参考下
本文实例讲述了JavaScript中字符串与Unicode编码互相转换的实现方法。
unicode的表示方式有两种,一种为web页面中使用的,一种为我们一般采用的编码方式
第一种:"成都 "Unicode编码方式 &+编号是网页里引用unicode字符的方法,编号为十进制的在unicode中的编号
第二种:\u6210\u90fd 表示的也是成都,采用的也是unicode编码格式,是java编程中使用的编码格式
它以\u开头,后接四位16进制的数。
分享给大家供大家参考,具体如下:
这段代码演示了JavaScript中字符串与Unicode编码的转换:
// 为了控制台的演示方便, 变量没有添加 var 定义 // 实际编程中请避免 // 字符串 str = "中文"; // 获取字符 char0 = str.charAt(0); // "中" // 数字编码值 code = str.charCodeAt(0); // 20013 // 编码互转 str0 = String.fromCharCode(code); // "中" // 转为16进制数组 code16 = code.toString(16); // "4e2d" // 变成字面量表示法 ustr = "\\u"+code16; // "\u4e2d" // 包装为JSON jsonstr = '{"ustr": "'+ ustr +'"}'; //'{"ustr": "\u4e2d"}' // 使用JSON工具转换 obj = JSON.parse(jsonstr); // Object {ustr: "中"} // ustr_n = obj.ustr; // "中"
如果是一组字符串,则需要使用到 for 循环来处理。
其中,我们使用了JSON工具来进行转换。
如果要兼容 IE6等浏览器,则可用如下形式进行解析:
if("object" === typeof message){ // 如果是对象,则不进行转换 } else if(window["JSON"]){ message = JSON.parse(message); } else { // IE6, IE7 message = eval("("+ message + ")"); }
控制台调试结果如下所示:
下面接着分享正则方式将&#数字形式转换为字符串或中文的方法
<script> //带;号 var str="https://www.jb51.net/article/1.htm"; //不带分号 var str2="https://www.jb51.net/article/1.htm"; function uncode(str) { return str.replace(/&#(x)?([^&]{1,5});?/g, function (a, b, c) { return String.fromCharCode(parseInt(c, b ? 16 : 10)); }) } document.write(uncode(str)); document.write("<br>"); document.write(uncode(str2)); </script>
希望本文所述对大家JavaScript程序设计有所帮助。