JS实现的汉字与Unicode码相互转化功能分析

 更新时间:2018年05月25日 12:08:10   作者:风雨后见彩虹  
这篇文章主要介绍了JS实现的汉字与Unicode码相互转化功能,结合实例形式分析了javascript实现汉字与Unicode码转换相关操作技巧与注意事项,需要的朋友可以参考下

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

有时候,我们在给后端传递变量的的值中有汉字,可能由于编码的原因,传递到后端后变为乱码了。所以有时候为了省事或者其它特殊要求的时候,会把传递的汉字转换成Unicode编码后再进行传递。

当然汉字转换成unicode编码,使用JS的charCodeAt()方法就可以。

'好'.charCodeAt(0).toString(16)
"597d"

这段代码的意思是,把字符'好'转化成Unicode编码,toString()就是把字符转化成16进制了

用法:charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数

语法:stringObject.charCodeAt(index)

index参数必填,表示字符串中某个位置的数字,即字符在字符串中的下标。

注:字符串中第一个字符的下标是 0。如果 index 是负数,或大于等于字符串的长度,则 charCodeAt() 返回 NaN。

例如:

var str="Hello world!"
document.write(str.charCodeAt(1))
//结果:101
'好哦'.charCodeAt(0).toString(16)
"597d"
'好哦'.charCodeAt(1).toString(16)
"54e6"

要是想把unicode解码成字符呢?

要想对Unicode解码的话,必须要用转义字符'\u'

'\u54e6'
"哦"

总结下:

js unicode是以十六进制代码外加开头\u表示的字符串。即\unnnn

Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。

下面先看一个简单的例子,汉字转化为unicode方法:

function toUnicodeFun(data){
 if(data == '' || typeof data == 'undefined') return '请输入汉字';
  var str ='';
  for(var i=0;i<data.length;i++){
   str+="\\u"+data.charCodeAt(i).toString(16);
  }
  return str;
}
var resultUnicode = toUnicodeFun('中国'); // \u4e2d\u56fd
console.log(resultUnicode);

unicode转化为汉字的方法:

function toChineseWords(data){
  if(data == '' || typeof data == 'undefined') 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 resultChineseWords = toChineseWords("\u4e2d\u56fd");
console.log(resultChineseWords);//中国

在网上找到另外一个实现方式:

var GB2312UnicodeConverter={
  ToUnicode:function(str){
    return escape(str).toLocaleLowerCase().replace(/%u/gi,'\\u');
  },
  ToGB2312:function(str){
    return unescape(str.replace(/\\u/gi,'%u'));
  }
};
var result = GB2312UnicodeConverter.ToUnicode('中国'); //\u4e2d\u56fd
var result2 = GB2312UnicodeConverter.ToUnicode(result); //%5cu4e2d%5cu56fd

下面实现汉字转Unicode码:

function toUnicode(s){
  return s.replace(/([\u4E00-\u9FA5]|[\uFE30-\uFFA0])/g,function(newStr){
    return "\\u" + newStr.charCodeAt(0).toString(16);
  });
}

PS:这里再为大家提供几款Unicode编码转换操作相关工具供大家参考使用:

在线Unicode/中文转换工具:
http://tools.jb51.net/transcoding/unicode_chinese

Native/Unicode在线编码转换工具:
http://tools.jb51.net/transcoding/native2unicode

在线中文汉字/ASCII码/Unicode编码互相转换工具:
http://tools.jb51.net/transcoding/chinese2unicode

更多关于JavaScript相关内容可查看本站专题:《javascript编码操作技巧总结》、《JavaScript加密解密技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

相关文章

  • Javascript图像处理—阈值函数实例应用

    Javascript图像处理—阈值函数实例应用

    阈值是最简单的图像分割方法,接下来将介绍五种阈值类型感兴趣的朋友可以参考下
    2013-01-01
  • JavaScript中const关键字的用法及特性

    JavaScript中const关键字的用法及特性

    该文章讲解了JavaScript中const关键字的用法以及它的一些特性,该关键字用于创建常量,即一旦赋值之后就不能再修改,但是,使用 const创建的对象和数组却可以被修改,本文通过讲解“赋值”和“变异”之间的重要区别,详细解释了这一现象,需要的朋友可以参考下
    2023-05-05
  • 前端常用的js函数方法

    前端常用的js函数方法

    这篇文章主要给大家分享的是常用的js函数的方法,告别搜索引擎的帮助,提高你的开发效率,,需要的朋友可以参考一下,希望对你的学习有所帮助
    2021-12-12
  • window.onload使用指南

    window.onload使用指南

    我们经常使用 window.onload 来处理页面,当页面加载完成做一些事情。但这个 window.onload 是页面全部加载完成,甚至包括图片,下面我们就来详细探讨下window.onload的用法
    2015-09-09
  • 微信小程序自定义导航隐藏和显示功能

    微信小程序自定义导航隐藏和显示功能

    这篇文章主要介绍了微信小程序自定义导航隐藏和显示功能,需要的朋友可以参考下
    2017-06-06
  • 判断js对象是否拥有某一个属性的js代码

    判断js对象是否拥有某一个属性的js代码

    js对象是否拥有某一个属性的判断方法有很多,下面为大家介绍个比较实用的技巧,希望对大家有所帮助
    2013-08-08
  • 微信小程序实战之网易云音乐歌曲详情页实现代码

    微信小程序实战之网易云音乐歌曲详情页实现代码

    本文给大家介绍了微信小程序学习记录之网易云音乐歌曲详情页代码实现,代码分为html、css和js部分,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • js去空格技巧分别去字符串前后、左右空格

    js去空格技巧分别去字符串前后、左右空格

    js去空格想必大家多少都会点吧,在接下来的文章中为大家详细介绍下如何分别去字符串前后,左边,右边空格,感兴趣的朋友可以参考下
    2013-10-10
  • javascript中setInterval的用法

    javascript中setInterval的用法

    这篇文章主要介绍了javascript中setInterval的用法的相关资料,需要的朋友可以参考下
    2015-07-07
  • 图解Javascript——作用域、作用域链、闭包

    图解Javascript——作用域、作用域链、闭包

    本文主要介绍了图解Javascript——作用域、作用域链、闭包等知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03

最新评论