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中unicode编码与String互转(三种方法)的更多相关文章

  1. VC中加载LIB库文件的三种方法

    VC中加载LIB库文件的三种方法 在VC中加载LIB文件的三种方法如下: 方法1:LIB文件直接加入到工程文件列表中   在VC中打开File View一页,选中工程名,单击鼠标右键,然后选中&quo ...

  2. java对象转换String类型的三种方法

    在很多情况下我们都需要将一个对象转换为String类型.一般来说有三种方法可以实现:Object.toString().(String)Object.String.valueOf(Object).下面 ...

  3. Linux 中执行Shell 脚本的方式(三种方法)

    Shell 脚本的执行方式通常有如下三种: (1)bash script-name 或者 sh script-name:(2)path/script-name或者./script-name:(3)so ...

  4. 在Java中按字节获得字符串长度的三种方法

    转载:http://www.blogjava.net/nokiaguy/archive/2010/04/11/317982.html 由于Java是基于Unicode编码的,因此,一个汉字的长度为1, ...

  5. Unity3D中的SendMessage使用(消息传递的三种方法)

    概述 Unity提供的消息推送机制可以非常方便我们的脚本开发,它实现的是一种伪监听者模式,利用的是反射机制. 常用函数 关于消息推送,常用的函数有三个:”SendMessage“.”SendMessa ...

  6. Java中实现十进制数转换为二进制的三种方法

    第一种:除基倒取余法 这是最符合我们平时的数学逻辑思维的,即输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2...依次循环,直到商为0结束,把余数倒着依次排列,就构成了转换后的二进制数 ...

  7. JavaScript中交换两个变量的值得三种做法(代码实现)

    javascript在编程时经常会涉及到如何交换两个变量的值,例如常见的冒泡排序,快速排序等:下面我讲根据自己近期所学总结几种常见的交换两个变量值的方法: 方法一:借助第三方变量交换两个变量的值 va ...

  8. PHP程序中删除字符串最后一个字符的三种方法

    常见的语法格式: foreach ($arr as $key => $value) {$arr_str = $arr['x_id'] . ',' . $arr_str;} 假设字符数组 $arr ...

  9. php中使用Curl、socket、file_get_contents三种方法POST提交数据

    抓取远程内容,之前一直都在用file_get_content函数,其实早就知道有curl这么一个好东西的存在,但是看了一眼后感觉使用颇有些复杂,没有file_get_content那么简单,再就是需求 ...

随机推荐

  1. Mac挂载虚拟机的共享文件夹

    说明:sshfs可以帮助本地mac访问虚拟机上的共享文件夹,从而操作虚拟机上的文件夹非常方便 1.安装sshfs sudo port install sshfs 2.使用,指定远程目录,到本地某一目录 ...

  2. Class对象、反射机制、获取Constructor构造方法

    1.Class对象的三种创建方法(Class首字母大写) public class Demo { public static void main(String[] args){ Object obj= ...

  3. 5G时代的到来,会给生活带来什么改变?

    本文首发于:风云社区. 据百度百科介绍,5G网络是第五代移动通信网络,其峰值理论传输速度可达每秒数十Gb,比4G网络的传输速度快数百倍.举例来说,整部超高画质电影可在1秒之内下载完成.   5G网络已 ...

  4. JAVA实现SFTP实例

    最近写的一个JAVA实现SFTP的实例: /* * Created on 2009-9-14 * Copyright 2009 by www.xfok.net. All Rights Reserved ...

  5. jackson用法

    ObjectMapper mapper=new ObjectMapper(); //3.调用mapper的writeValueAsString()方法把一个对象或集合转为json字符串 Custome ...

  6. CF786B Legacy && 线段树优化连边

    线段树优化连边 要求点 \(x\) 向区间 \([L, R]\) 连边, 一次的复杂度上限为 \(O(n)\) 然后弄成线段树的结构 先父子连边边权为 \(0\) 这样连边就只需要连父亲就可以等效于连 ...

  7. Python学习笔记10--unittest参数化

    我们在写case的时候,如果用例的操作是一样的,就是参数不同,比如说要测一个登陆的接口,要测正常登陆的.黑名单用户登陆的.账号密码错误的等等,在unittest里面就要写多个case来测试. 这样的情 ...

  8. 51nod1331 狭窄的通道

    题目传送门 这道题 51nod只Ac了十二个人 没有题解可以研究 所以就自己YY了半天 在这里先感谢一波岚清大爷 orz 然后这道题我分了两种情况 一种是左边的往左跑右边的往右跑 中间有一部分直接走不 ...

  9. resolution will not be reattempted until the update interval of repository-group has elapsed or updates are forced

    Failed to execute goal on project safetan-web: Could not resolve dependencies for project com.safeta ...

  10. Shiro简介及入门(四)

    1.1     什么是shiro shiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证.用户授权. spring中有spring security (原名Acegi),是一个权 ...