楠Go随笔

JS字符编码函数介绍

2018-01-20 16:42:57 admin 阅读 网站首页 > 前端技术+ > Javascript

数据在本地保存或者网络传输时,有些情况需要对内容做编码,防止数据被截断或乱码。好在JS提供了相关的编码函数进行编码

常见字符编码
编码前的字符编码后的字符
:%3A
?%3F
/%2F
=%3D

JS编码函数

escape 

    不编码字符有69个:*+-./@_0-9a-zA-Z  escape0-255以外的unicode值进行编码时输出%u****格式,其它情况下escapeencodeURIencodeURIComponent编码结果相同

encodeURI

    进行url跳转时可以整体使用encodeURI 不编码字符有82个:!#$&'()*+,-./:;=?@_~0-9a-zA-Z

encodeURIComponent

    常用于参数带超链接的字符串编码 这样组合的url才不会被#等特殊字符截断 不编码字符有71个:! '()*-._~0-9a-zA-Z

相应的解码函数分别为 unescape decodeURI decodeURIComponent

用escape 编码中文字符是内容与 上述两个不同

场景 

    cookie 中文乱码

            有一回需要在客户端存放cookie记录普通的会话数据,因为不想每一次点击都往服务器发请求。为了降低服务器的压力, 可是存储的cookie中包含中文字符,下一次获取的时候就会被截断乱码,为了解决这一问题,会在客户端更新cookie时进行编码,然后在服务器获取cookie时解码传输到页面,这样就解决了中文乱码问题。

//javascript 编码演示
setcookie('names',encodeURIComponent(names),3000);
<?php
//PHP 解码演示 $cookie_pnames = getcookie('names'); $names = $cookie_pnames ? urldecode($cookie_pnames) : '';
?>


搜索

关于楠Go

2015年毕业于吉林大学珠海学院,现今工作已两年有余,2014年在珠海一家游戏公司从事手机游戏开发,后离职转型为网络端PHP工程师,时至今日。熟练掌握PHP面向对象编程网络编程TP框架使用Discuz论坛插件开发。掌握前端框架Bootstrap的使用,掌握JS框架Jquery的使用。已开发多款网站,有着一定基础的开发经验,希望能在互联网领域再上一层楼!

了解更多: 开源中国 ThinkPHP


Powered by MetInfo 5.3.19 ©2008-2018 www.MetInfo.cn