经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JSJS库框架 » JavaScript » 查看文章
javaScript 字符串与unicode码之间的相互转换,函数的封装
来源:cnblogs  作者:true||true  时间:2018/9/28 16:51:42  对本文有异议

在我们的开发过程中,有时在对数据进行储存的时候,我们需要将字符串转成unicode。

比如,在jsp开发时,前端使用页面间传值时,将传值参数先存入cookie中,然后在使用的时候,再从ookie中取出。当存入cookie的参数为汉字或别的什么特殊字符时,就会导致服务器崩溃。

崩溃的大致原因:每次客户端与服务器之间的通信都会携带cookie,所以存入cookie的特殊字符就会被携带到服务器中。而在jsp开发的项目中,服务器在遇到cookie中这些特殊字符时,无法正确的解析,导致服务器崩溃。具体导致原因,后端会更加清楚,我也只是了解个大概,有兴趣的可以深入了解。

这时,我们在cookie存入的要是unicode码的话,就不会导致服务器崩溃的问题。当然也有别的处理方法,比如存入storage,让后端帮忙处理等。这里只说转码的解决方法。

方法中大致用到javascript中的两个自带的API。

fromCharCode():fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符。用法string.fromCharCode(unicode,16));

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

看,javascript已经帮我们做完了很多事情。这两个API一次只能帮我们处理一个字符啊。还有就是这两个方法处理完和处理后都是 0 - 65535 之间的整数。而我们在使用的时候一般习惯性的在整数码之前加入\u,这个要手动的加入和删除。

代码如下:

  1. //将unicode编码转字符串
  2. var Unicode_Str=function(unicode){
  3. var result=[];
  4. var strArr=unicode.split('\\u');
  5. for(var i=0,len=strArr.length;i<len;i++){
  6. if(strArr[i]){
  7. result.push(string.fromCharCode(parseInt(strArr[i],16)))
  8. }
  9. }
  10. return result.join('');
  11. }
  12. //将字符串转unicode编码
  13. var Str_Unicode=function(str){
  14. var unid='\\u';
  15. for(let i=0,len=str.length;i<len;i++){
  16. if(i<len-1){
  17. unid+=str.charCodeAt(i).toString(16)+'\\u';
  18. }else if(i===len-1){
  19. unid+=str.charCodeAt(i).toString(16);
  20. }
  21. }
  22. return unid;
  23. }

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号