javaScript 字符串与unicode码之间的相互转换,函数的封装
程序员文章站
2022-07-09 21:18:19
在我们的开发过程中,有时在对数据进行储存的时候,我们需要将字符串转成unicode。 比如,在jsp开发时,前端使用页面间传值时,将传值参数先存入cookie中,然后在使用的时候,再从ookie中取出。当存入cookie的参数为汉字或别的什么特殊字符时,就会导致服务器崩溃。 崩溃的大致原因:每次客户 ......
在我们的开发过程中,有时在对数据进行储存的时候,我们需要将字符串转成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; }
推荐阅读
-
用JavaScript实现汉字与Unicode的相互转换
-
javaScript 字符串与unicode码之间的相互转换,函数的封装
-
解析JSON对象与字符串之间的相互转换
-
详解JavaScript中js对象与JSON格式字符串的相互转换
-
解析JSON对象与字符串之间的相互转换
-
PHP二进制与字符串之间的相互转换
-
PHP二进制与字符串之间的相互转换
-
速战速决 6 - PHP: 获取 http 请求数据, 获取 get 数据 和 post 数据, json 字符串与对象之间的相互转换
-
速战速决 (6) - PHP: 获取 http 请求数据, 获取 get 数据 和 post 数据, json 字符串与对象之间的相互转换 - webabcd
-
json字符串之间的相互转换示例代码_javascript技巧