Unicode与字符汉字相互转换
浏览:3852次 出处信息
/*
常用中文的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
建议继续学习:
- 字符编码和中文乱码小叙 (阅读:5574)
- 中文编码杂谈 (阅读:4915)
- Hadoop的map/reduce作业输入非UTF-8编码数据的处理原理 (阅读:4577)
- PHP编码规范 (阅读:4324)
- base64_encode 和 urlencode (阅读:4056)
- UTF-8编码中BOM的检测与删除 (阅读:4005)
- Linux screen窗口中文乱码问题 (阅读:3923)
- python-django的中文编码总结 (阅读:3759)
- JAVASCRIPT完美实现UTF8页面提交数据到GB2312 (阅读:3564)
- 自动检测字符编码函数mb_detect_encoding (阅读:3526)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:PHP正则匹配字符串中的标签
后一篇:让PHP更快的提供文件下载 >>
文章信息
- 作者:tinyliu 来源: Accumulating
- 标签: Unicode 编码
- 发布时间:2012-04-19 23:45:04
建议继续学习
近3天十大热文
- [68] 如何拿下简短的域名
- [68] Go Reflect 性能
- [64] Oracle MTS模式下 进程地址与会话信
- [61] IOS安全–浅谈关于IOS加固的几种方法
- [61] 图书馆的世界纪录
- [60] 【社会化设计】自我(self)部分――欢迎区
- [59] android 开发入门
- [54] 视觉调整-设计师 vs. 逻辑
- [49] 读书笔记-壹百度:百度十年千倍的29条法则
- [47] 界面设计速成