现在的位置: 首页 > 综合 > 正文

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

2012年09月26日 ⁄ 综合 ⁄ 共 1086字 ⁄ 字号 评论关闭

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'就可):

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

 

 

 

抱歉!评论已关闭.