JS实现汉字与Unicode码相互转换的方法详解


Posted in Javascript onApril 28, 2017

本文实例讲述了JS实现汉字与Unicode码相互转换的方法。分享给大家供大家参考,具体如下:

js文件中,有些变量的值可能会含有汉字,画面引入js以后,有可能会因为字符集的原因,把里面的汉字都变成乱码。后来发现网上的一些js里会把变量中的汉字都表示成”\u“开头的16进制编码,这样应该可以解决上面的问题。

最近有时间在网上查找了一下实现方式,一种比较大众化的:

function tounicode(data)
{
  if(data == '') return '请输入汉字';
  var str ='';
  for(var i=0;i<data.length;i++)
  {
   str+="\\u"+parseInt(data[i].charCodeAt(0),10).toString(16);
  }
  return str;
}
function tohanzi(data)
{
  if(data == '') return '请输入十六进制unicode';
  data = data.split("\u");
  var str ='';
  for(var i=0;i<data.length;i++)
  {
    str+=String.fromCharCode(parseInt(data[i],16).toString(10));
  }
  return str;
}

还找到一个相对简单一些,但比较另类的:

var GB2312UnicodeConverter={
    ToUnicode:function(str){
     return escape(str).toLocaleLowerCase().replace(/%u/gi,'\\u');
    }
    ,ToGB2312:function(str){
     return unescape(str.replace(/\\u/gi,'%u'));
    }
};

不过都有些问题,这两种方式,都会把出汉字以外的其他字符都给转换掉,做个简单的加密解密算法还是可以的,但要是用来处理js文件,把回车、换行、空格、tab字符全换了,转完以后,js文件也没法运行了。

偷懒不成,只能自己按照上面代码处理逻辑写一个了,只要保证只转换汉字字符就可以了:

// 汉字转为Unicode字符码表示
function toUnicode(s){
    return s.replace(/([\u4E00-\u9FA5]|[\uFE30-\uFFA0])/g,function(){
     return "\\u" + RegExp["$1"].charCodeAt(0).toString(16);
    });
}

方法写完了,为了方便转换js文件的内容,再做个简单的页面,加一个button在画面上。先要做的是在js文件Ctr+A,Ctr+C,把内容拷贝 到剪贴板里,然后再新建的这个画面上,点button的时候,从剪贴板里把内容读出来,调用方法转一下,在把内容放回剪贴板。然后再到 js文件里Ctr+A,Ctr+V一下就可以了。代码如下:

<html>
 <head>
  <script language="javascript">
   function Window_Load(){
     var G = document.getElementById;
     G("cmdToU").onclick = function(){
       clipboardData.setData("text",toUnicode(clipboardData.getData("text")));
     }
   }
   // 汉字转为Unicode字符码表示
// 原函数是,红色是是错误的,导致多个中文时,结果都是最后一个汉字的unicode码;
   function toUnicode(s){
     return s.replace(/([\u4E00-\u9FA5]|[\uFE30-\uFFA0])/g,function(){
      return "\\u" + RegExp["$1"].charCodeAt(0).toString(16);
     });
   }
// 经@b4b4指正,现更改
function toUnicode(s){
     return s.replace(/([\u4E00-\u9FA5]|[\uFE30-\uFFA0])/g,function(newStr){
      return "\\u" + newStr.charCodeAt(0).toString(16);
});
}
</script>
</head>
<body onload="Window_Load();">
<button id="cmdToU">汉字转为Unicode</button>
</body>
</html>

这个页面只能在IE内核的浏览器下才能正常运行,因为clipboardData对象好像只在IE下面有。

Javascript 相关文章推荐
jQuery 方法大全方便学习参考
Feb 25 Javascript
JQuery开发的数独游戏代码
Oct 29 Javascript
php is_numberic函数造成的SQL注入漏洞
Mar 10 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
Mar 18 Javascript
ES6新特性之Symbol类型用法分析
Mar 31 Javascript
Javascript创建类和对象详解
May 31 Javascript
理解Angular的providers给Http添加默认headers
Jul 04 Javascript
使用JQ完成表格隔行换色的简单实例
Aug 25 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
Sep 21 Javascript
vue中注册自定义的全局js方法
Nov 15 Javascript
浅析JavaScript 函数柯里化
Sep 08 Javascript
JavaScript获取时区实现过程解析
Sep 24 Javascript
JS组件系列之JS组件封装过程详解
Apr 28 #Javascript
JS实现的Unicode编码转换操作示例
Apr 28 #Javascript
webpack配置文件和常用配置项介绍
Apr 28 #Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
Apr 28 #Javascript
JavaScript实现简单的四则运算计算器完整实例
Apr 28 #Javascript
vue实现动态数据绑定
Apr 28 #Javascript
Vue实现动态响应数据变化
Apr 28 #Javascript
You might like
PHP提取中文首字母
2008/04/09 PHP
php生成随机数或者字符串的代码
2008/09/05 PHP
PHP正则的Unknown Modifier错误解决方法
2010/03/02 PHP
yii2实现根据时间搜索的方法
2016/05/25 PHP
转换json格式的日期为Javascript对象的函数
2010/07/13 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
js+canvas简单绘制圆圈的方法
2016/01/28 Javascript
JavaScript中两个字符串的匹配
2016/06/08 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
2017/09/14 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
2019/05/05 Javascript
Angular4.0动画操作实例详解
2019/05/10 Javascript
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
Vue实现购物车详情页面的方法
2019/08/20 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
2019/09/10 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
2020/10/17 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
Python 专题三 字符串的基础知识
2017/03/19 Python
Python使用django搭建web开发环境
2017/06/09 Python
python表格存取的方法
2018/03/07 Python
python psutil模块使用方法解析
2019/08/01 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
Python高级property属性用法实例分析
2019/11/19 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
CPB肌肤之钥美国官网:Clé de Peau Beauté
2017/09/05 全球购物
香港交友网站:be2香港
2018/07/22 全球购物
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
幼儿园教研活动方案
2014/01/19 职场文书
社区端午节活动方案
2014/01/28 职场文书
交通安全教育制度
2014/02/02 职场文书
企业整改报告范文
2014/11/08 职场文书
2014年会计主管工作总结
2014/12/20 职场文书
2019年教师节:送给所有老师的祝福语
2019/09/05 职场文书
浅谈Python数学建模之数据导入
2021/06/23 Python
以MySQL5.7为例了解一下执行计划
2022/04/13 MySQL