技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> PHP --> Unicode与字符汉字相互转换

Unicode与字符汉字相互转换

浏览:3882次  出处信息

/*

常用中文的unicode码的范围是4E00 ~ 9FA5,不包含全角在内,具体编码参见http://www.unicode.org/Public/5.0.0/ucd/Unihan.html

*/

1、将汉字转换为unicode

主要利用javascript正则表达式中的\uxxxx进行匹配,对匹配结果使用escape和replace,该方法仅对汉字有效:

1
2
3
4
5
6
function unicode_only_chs(str){ // str = "测试test"
    return str.replace(/([^\u0000-\u00FF])/g, function($0){ // $0 = "测","试"
        var tmp = escape($0); // tmp = "%u6D4B","%u8BD5"
        return tmp.replace(/(%u)(\w{4})/gi,"\\u$2") // 将"%u"替换为"\u",即"\u6D4B"
    });
}

 

2、将全部字符转换为unicode

利用charCodeAt()和toString(16)即可实现:

1
2
3
4
5
6
7
8
9
10
function unicode_all(str){ // str = "测试test"
    return str.replace(/([\u0000-\uFFFF])/g, function($0){ // $0 = "测","试","t","e","s","t"
        if($0.charCodeAt() < 256) {
            return '\\u00' + $0.charCodeAt().toString(16); // 0 ~ 255的英文字符
        }
        else {
            return '\\u' + $0.charCodeAt().toString(16);
        }
    });
}

 

3、unicode转换为字符和汉字

主要利用String.fromCharCode()和parseInt(,16):

1
2
3
4
5
6
function reconvert(str){
    str = str.replace(/(\\u)(\w{4}|\w{2})/gi, function($0,$1,$2){
        return String.fromCharCode(parseInt($2,16));
    });
    return str;
}

Demo

建议继续学习:

  1. 字符编码和中文乱码小叙    (阅读:5605)
  2. 中文编码杂谈    (阅读:4930)
  3. Hadoop的map/reduce作业输入非UTF-8编码数据的处理原理    (阅读:4597)
  4. PHP编码规范    (阅读:4339)
  5. base64_encode 和 urlencode    (阅读:4071)
  6. UTF-8编码中BOM的检测与删除    (阅读:4022)
  7. Linux screen窗口中文乱码问题    (阅读:3942)
  8. python-django的中文编码总结    (阅读:3776)
  9. JAVASCRIPT完美实现UTF8页面提交数据到GB2312    (阅读:3579)
  10. 自动检测字符编码函数mb_detect_encoding    (阅读:3543)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1