中文字符 与 十六进制Unicode编码 相互转换

时间:2022-08-16 07:45:13

1、知识准备

  str.charCodeAt()  返回字符串中的第n个字符的代码;

  String.fromCharCode(27573)  返回指定Unicode编码的字符;

  例:

var str="胜多负少";

document.write(str.charCodeAt(
0)+'<br/>'); //32988
document.write(str.charCodeAt(2)+'<br/>'); //36127

document.write(String.fromCharCode(
32988)+'<br/>'); //
document.write(String.fromCharCode(36127)+'<br/>'); //

 

2、把 中文字符串 转换为 十六进制Unicode编码

    var toUnicode = function (s) {
var str = "";
for (var i = 0; i < s.length; i++) {
str
+="\\u"+s.charCodeAt(i).toString(16)+"\t";
}
return str;
}
var a = '胜多负少';

document.write(toUnicode(a));
// \u80dc \u591a \u8d1f \u5c11

 

3、把 十六进制Unicode编码 转换为 中文字符串。 

  因为"\u"会被转义,所以字符串里要写成"\\u"。

    var toStr = function (n){
var str = "";
var s = n.split('\\u');
for(var i = 0;i < s.length;i++){
str
+= String.fromCharCode(parseInt(s[i],16))+"\t";
}
return str;
}
var b = "\\u80dc \\u591a \\u8d1f \\u5c11";

document.write(toStr(b));
// 胜 多 负 少

   当然,查看把 十六进制Unicode编码 转换为 中文字符串 最简单的方法就是:直接在 控制台 里 输入、回车,向下面这样(此处直接'\u+xxxx'就可):

中文字符 与 十六进制Unicode编码 相互转换

4、Unicode编码更多知识

    百度百科:http://baike.baidu.com/view/40801.htm

    阮一峰的网络日志:《字符编码笔记:ASCII,Unicode和UTF-8》   http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

    汉字Unicode编码表:http://www.chi2ko.com/tool/CJK.htm