在我们的开发过程中,有时在对数据进行储存的时候,我们需要将字符串转成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,这个要手动的加入和删除。

代码如下:

//将unicode编码转字符串
var Unicode_Str=function(unicode){
var result=[];
var strArr=unicode.split('\\u');
for(var i=0,len=strArr.length;i<len;i++){
if(strArr[i]){
result.push(string.fromCharCode(parseInt(strArr[i],16)))
}
}
return result.join('');
}
//将字符串转unicode编码
var Str_Unicode=function(str){
var unid='\\u';
for(let i=0,len=str.length;i<len;i++){
if(i<len-1){
unid+=str.charCodeAt(i).toString(16)+'\\u';
}else if(i===len-1){
unid+=str.charCodeAt(i).toString(16);
}
}
return unid;
}

最新文章

  1. php模拟飞鸽传输协议,代码实现向飞鸽发送消息
  2. 安装cgdb
  3. Scala函数字面量
  4. pull解析xml文件
  5. 用javascript向一个网页连接接口发送请求,并接收该接口返回的json串
  6. C++中的左值和右值
  7. Javascript Array API
  8. Twisted 介绍 及TCP广播系统实例
  9. 春天aopframework实现
  10. P1137 旅行计划
  11. Python 第八阶段 学习记录之---算法
  12. python 字典 拼接SQL语句
  13. 依赖倒置原则(DIP)
  14. EMOS之邮件服务器
  15. Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 1)C. Morse Code
  16. SSH原理与运用(一):远程登录(转)
  17. java第二次实验报告
  18. [置顶] macbook 深度休眠和待机
  19. 网络虚拟化技术(一): Linux网络虚拟化
  20. HDCMS导航高亮显示!解决办法

热门文章

  1. Python爬虫《http和https协议》
  2. MySQL查询笔试综合题练习
  3. Stage2--Python的数据类型
  4. Flexviewer使用Google地图作为底图
  5. Tomcat中部署web应用的三种方式
  6. mongodb 3.4 学习 (六)监控
  7. groupdel
  8. Python 将文件重新命名
  9. POJ 2942 圆桌骑士
  10. CF666E 【Forensic Examination】