JS之汉字与Unicode码的相互转化
2018-06-24 00:49:07来源:未知 阅读 ()
有时候,我们在给后端传递变量的的值中有汉字,可能由于编码的原因,传递到后端后变为乱码了。所以有时候为了省事或者其它特殊要求的时候,会把传递的汉字转换成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); }); }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- JavaScript通过URL传递汉字的实现方法 2019-09-30
- javascript转义unicode十六进制编码且带有反斜杠后的html 2018-12-24
- layui 弹窗的iframe 父子界面相互传值 2018-11-20
- jQuery 对象 与 原生 DOM 对象 相互转换 2018-08-13
- json字符串和json对象的相互转化 2018-08-02
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash