JavaScript中unicode编码与String互转(三种方法)

摘要:
此时string2unicode需要修改一下即可。

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='u6211u662fu4e2du56fdu4ebaChina';
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);//u6211u662fu4e2du56fdu4eba
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");//"u4e2du56fdu4ebau0043u004e"
var str_s = unicode2string(str_u);//中国人CN  

免责声明:文章转载自《JavaScript中unicode编码与String互转(三种方法)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Mysql中的递归查询iis 程序池设置及详解-20180720下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

1.kafka

什么是Kafka 1.Apache Kafka是一个开源消息系统,由Scala写成。 2.Kafka是一个分布式消息队列。Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受者称为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)称为broker。 3.无论是kafka集群,还是cons...

使用EasyExcel导出图片及异常处理

1、使用String类型导出   定义自己的Converter,不使用默认的StringImageConverter 如果图片路径为空或者图片路径是错误的,返回相应的内容 import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream;...

1034 Head of a Gang (30 分)(图的遍历or并查集)

dfs #include<bits/stdc++.h> using namespace std; const int N=3000; int mp[N][N]; int weight[N]; int vis[N]; map<string,int>si; map<int,string>is; map<string...

fastJSON 使用总结

1.介绍Fastjson Fastjson是一个Java语言编写的JSON处理器。 如果获得Fastjson?https://github.com/alibaba/fastjson 2.使用Fastjson Json互转List<T> 比如说List<Strudent> List转Json List<Student>...

Java调用Http/Https接口(8,end)OkHttp调用Http/Https接口

OkHttp是一个高效的HTTP客户端,在Android中用的比较多,也可以用在Java中;本文主要介绍OkHttp在java中的使用,文中所使用到的软件版本:Java 1.8.0_191、SpringBoot2.2.1.RELEASE。 1、OkHttp特点 a、支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接b、连接池减少请求延...

C# 将RTF文档保存到SQLITE当中

表的结构 CREATE TABLE [DATA_TBL]( [ID] VARCHAR PRIMARY KEY, [TITLE] TEXT, [RTF] BINARY, [TAG] TEXT); using System.Data.SQLite; string ConnectionString = "Data Source = test.db; Ve...