用生命谱写代码的赞歌

0%

JavaScript中Unicode编码与String互相转换

方法

1
2
3
4
5
6
7
8
9
// Unicode转String
eval("'" + str + "'"); // 当str中有带分号'或者"时,会报错,此时改成eval('"' + str + '"')即可

(new Function("return '" + str + "'"))();

unescape(str.replace(/\u/g, "%u"));

// String转Unicode (str字符的第i个)
"\\u" + str.charCodeAt(i).toString(16);

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Unicode转String
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

// String转Unicode
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 + "'");
}