`
laodaobazi
  • 浏览: 272108 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在js中对中文和特殊字符转码

阅读更多

直接上代码

js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent
1、   传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。                            
例如:<script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7&u= +encodeURIComponent("http://cang.baidu.com/bruce42")+">退出</a>');</script>
2、   进行url跳转时可以整体使用encodeURI
例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");
3、   js使用数据时可以使用escape
例如:搜藏中history纪录。
4、   escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。
最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

 

js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent
1、   传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。                            
例如:<script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7&u= +encodeURIComponent("http://cang.baidu.com/bruce42")+">退出</a>');</script>
2、   进行url跳转时可以整体使用encodeURI
例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");
3、   js使用数据时可以使用escape
例如:搜藏中history纪录。
4、   escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。
最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)
escape不编码字符有69个:*+-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

分享到:
评论

相关推荐

    彻底根治Spring @ResponseBody JavaScript HTML特殊字符

    Spring MVC下彻底解决@ResponseBody转义html特殊字符问题,解决包括尖角号(),单引号('),双引号("),按位与(&),反斜杠(\)。

    利用JS把URL地址栏%20、%55之类编码转成中文字符

    利用JS把URL地址栏%20、%55之类编码转成中文字符!

    如何通过JS实现转码与解码

    所有的空格符、标点符号、特殊字符以及更多有联系非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是 。 escape不编码字符有69个:*,+,-,....

    字符串内特殊字符在html_javascript_xml等内使用时的转换

    原来是javascript在提交数据时若遇到”\”会把它当做javascript的特殊字符对待(相当于关键字),从而打乱了javascript代码,导致错误.而我的pathname由于是绝对地址,包含了很多个”\”,所以报错。解决办法是将”\”替换...

    JavaScript中最简洁的编码html字符串的方法

    html字符串是指'”a”&gt;aklsdjfklsjdfl’这样的带html特殊符号的字符串,我们通常要对他进行处理再输出以免输出成了真正的html元素,也就是把&lt;变成&lt;这样的html符号代码。 如果字符串很长,里面特殊符号很多,...

    用javascript解决外部数据抓取中的乱码问题

    如果外部数据是gb2312编码的,就涉及到转码的问题,但是传统的用vbs函数进行处理的方法,运算量比较大,有些特殊字符还会出错。 如果用adodb.stream控件来进行转码,就简单多了,不需要借助vbs的二进制处理函数了,...

    简单实例处理url特殊符号&amp;处理(2种方法)

    url里的参数内容包含&符合,我有两种方法解决一是:在页面用JS转码;二是:在后端处理,另外还有网络分享的一些方法,感兴趣的朋友可以参考下哈

    解决js数据包含加号+通过ajax传到后台时出现连接错误

    说“B+侦探”和”C+侦探”不能看,我当时很郁闷,因为其他资源是可以播放的,为什么这个不能播放,而且电影名称我都是字符转换过的,在不断调试中,发现url地址电影名字转码后存在一个“+”,心想是不是这个问题,...

    简单实例处理url特殊符号处理(2种方法)

    我遇到的问题是:url里的参数内容包含&符合,我有两种方法解决 其一方法是:在页面用JS转码,例子如下(前端处理) 代码如下: ${group.cn })&lt;/a&gt; [removed] function test(a,b){ alert&#40;“test”&#41;; location....

    傲游浏览器3(Maxthon) 3.1.8.1000 正式版

    * 对特殊字符转码问题会导致页面出现 404 错误. * 个别用户的图片另存为对话框无法弹出. * 在 Google+ 页面点击 "Start a Hangout" 后, 弹出 C++ Runtime 错误. * 点击 Facebook 连接提示登录. [主框架] * 解决部分...

    微信公众号H5之微信分享常见错误和问题(小结)

    url转码 官方文档描述: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#62 确认url是页面完整的url(请在当前页面alert&#...如果链接带有中文字符或者特殊符号,前端需要使用encodeURICompo

    精易官方免费模块v3.60版

    5.完善 DLL“_宽字符到双字节”和“_宽字符到双字节1”的备注 方便区分 1.修复“编码_Unicode到Utf8”,感谢 90后辉煌 的提醒 2.修复“系统_取宽带用户名密码”因 编码_Unicode到Utf8 有问题导致的问题 感谢 wjjucwj...

    牛叉内容管理系统(NiuXcms) v1.07.rar

    2. 推荐文章功能改进:自动转码功能增强,过滤掉特殊字符。 3. 更改所有样板模板的默认主题为start。 4. 安装增加浏览器版本判断,低于IE8提示更换浏览器。后台登陆浏览器版本推荐IE8 ,Chrome,Firefox等等。  ...

    精易模块[源码] V5.15

    5、新增“文本_是否为双字节字符”与OPenGL支持库-&gt;文字轮廓 中的 是否为双字节字符功能相同。 6、新增“文本_是否为字母”,判断指定文本是否为字母。 7、新增“目录_取桌面目录”获取当前系统桌面目录。 MD5:...

Global site tag (gtag.js) - Google Analytics