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. 有意思的undefined columns selected,源于read.table和read.csv

    输入以下语法时: read.table(site_file,header=T)->data data<-data[which(data[,5]=="ADD"),] 出现 ...

  2. BAPC2017

    Benelux Algorithm Programming Contest 2017 参考资料: https://blog.csdn.net/sizaif/article/details/798586 ...

  3. Ansible playbook 批量修改服务器密码 先普通后root用户

    fsckzy   Ansible playbook 批量修改服务器密码 客户的需求:修改所有服务器密码,密码规则为Rfv5%+主机名后3位 背景:服务器有CentOS6.7,SuSE9.10.11,r ...

  4. 特征选取1-from sklearn.feature_selection import SelectKBest

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  5. shell函数与数组

    shell函数与数组 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么要使用shell函数 简单的说函数的作用就是把程序里多次调用的相同的代码部分定义成一份,然后起个名字, ...

  6. sudo权限管理

    sudo权限管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 好久没有更新关于命令的博客了,这也是这周工作,开发问了我一个问题,说caiq这个用户为什么不能用sudo权限,于是百 ...

  7. PLSQL Developer 连接Linux 下Oracle的安装与配置

    一.下载 下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 这是Ora ...

  8. webStorm2018激活的方法

    问题 激活 webstorm 2018 最新版 解决步骤 License server:http://im.js.cn:8888

  9. 用java发邮件之一 (直接源于真实项目) 【原】

    真实项目应用的java发送邮件,应该还待进一步完善. 依赖 mail-1.4.jar jar包下载地址: http://mvnrepository.com/artifact/javax.mail/ma ...

  10. Tomcat服务启动成功,但访问index.jsp出错 (jspInit)【转】

    本文引用自 --> http://zhouhaitao.iteye.com/blog/1164736 Tomcat服务启动成功,但访问index.jsp出错 环境:Tomcat6 + jdk6 ...