且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-08-13 12:48:13

1、知识准备

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

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

  例:

中文字符 与 十六进制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/>');        //
中文字符 与 十六进制Unicode编码 相互转换

 

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

中文字符 与 十六进制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
中文字符 与 十六进制Unicode编码 相互转换

 

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

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

中文字符 与 十六进制Unicode编码 相互转换
    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编码 相互转换

   当然,查看把 十六进制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

本文转自挨踢前端博客园博客,原文链接http://www.cnblogs.com/duanhuajian/archive/2013/04/26/3045144.html如需转载请自行联系原作者


@挨踢前端