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 获取自定义属性(attr和prop)的实现代码
Jun 27 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
Nov 21 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
Apr 12 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
May 03 Javascript
jQuery和JavaScript节点插入元素的方法对比
Nov 18 Javascript
es6的数字处理的方法(5个)
Mar 16 Javascript
react-router browserHistory刷新页面404问题解决方法
Dec 29 Javascript
jQuery实现可编辑的表格
Dec 11 jQuery
在 Vue 中编写 SVG 图标组件的方法
Feb 24 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 Vue.js
深入理解javascript中的this
Feb 08 Javascript
Vue全局事件总线你了解吗
Feb 24 Vue.js
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删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
PHP中使用TCPDF生成PDF文档实例
2014/07/01 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
php无限级分类实现方法分析
2016/10/19 PHP
PHP实现随机发扑克牌
2020/04/22 PHP
js操作时间(年-月-日 时-分-秒 星期几)
2010/06/20 Javascript
jQuery.extend 函数详解
2012/02/03 Javascript
javascript工厂方式定义对象
2014/12/26 Javascript
swiper.js插件实现pc端文本上下滑动功能示例
2018/12/03 Javascript
puppeteer实现html截图的示例代码
2019/01/10 Javascript
Node.js+Express+Mysql 实现增删改查
2019/04/03 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[01:10:27]DOTA2-DPC中国联赛正赛 SAG vs XG BO3 第二场 3月5日
2021/03/11 DOTA
python3下实现搜狗AI API的代码示例
2018/04/10 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
opencv python 基于KNN的手写体识别的实例
2018/08/03 Python
python实现嵌套列表平铺的两种方法
2018/11/08 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
用Python配平化学方程式的方法
2019/07/20 Python
详解如何用TensorFlow训练和识别/分类自定义图片
2019/08/05 Python
django实现更改数据库某个字段以及字段段内数据
2020/03/31 Python
python之随机数函数的实现示例
2020/12/30 Python
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
2016/08/15 HTML / CSS
HTML5的hidden属性兼容老浏览器的方法
2014/04/23 HTML / CSS
金宝贝童装官网:Gymboree
2016/08/31 全球购物
毕业生求职推荐信
2013/11/04 职场文书
日语系毕业生推荐信
2013/11/11 职场文书
高中考试作弊检讨书
2014/01/14 职场文书
学校消防安全制度
2014/01/30 职场文书
社区八一活动方案
2014/02/03 职场文书
仓库管理计划书
2014/05/04 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书
Python各协议下socket黏包问题原理
2022/04/12 Python