php/js互传cookie中文乱码的问题
问题发现:
过去好好的,今天突然网页出现了问题。
在猎豹和IE都出现问题,在360浏览器就正常。
经过排错,最终发现: js存储cookie,php读取的时候成了乱码 。
问题分析:
这是因为文字编码而造成的,汉字是两个编码,所以才会搞出这么个乱码出来!
解决思路:
1:写入Cookie时,先将其用Url编码,然后再写入
2:当我们读取时再Url解码即可
php两个函数
urlencode()
urldecode()
js两个函数
decodeURI()
encodeURI()
5.5以前的版本是 escape unescape
php 设置cookie ,js读取cookie
<?php
setcookie ("TestCookie", urlencode("这就是网页21"));
?>
<script type="text/javascript">
alert(decodeURI(getCookie("TestCookie")))
function getCookie(sName) {
var aCookie = document.cookie.split('; ');
for (var i=0; i < aCookie.length; i++) {
var aCrumb = aCookie[i].split('=');
if (sName == aCrumb[0])
return decodeURI(aCrumb[1]);
}
return '';
}
</script>
js设置cookie php读取cookie
<script type="text/javascript">function setCookie(name, value, time){
var nameString = name + '=' + encodeURI(value);
var expiryString = "";
if(time !== 0) {
var expdate = new Date();
if(time == null || isNaN(time)) time = 60*60*1000;
expdate.setTime(expdate.getTime() + time);
expiryString = ' ;expires = '+ expdate.toGMTString();
}
var path = " ;path =/";
document.cookie = nameString + expiryString + path;
}setCookie("TestJsCookie", "我是中国人", 0) </script>
<?php
echo urldecode($_COOKIE["TestJsCookie"]);
?>
3 js设置js读取 php设置php读取方法类似
总结:cookie解决中文乱码问题实质上是就url编码函数之间的转换
php/js互传cookie中文乱码的问题的更多相关文章
- java js url传参中文乱码
String item = this.getRequest().getParameter("item"); item = new String(item.getBytes(&quo ...
- cookie中文乱码
在学习当中碰到cookie中文乱码问题,问题原因:cookie对中文不太支持,将中文放入cookie中会报错误. 解决办法: 1.编码 将中文进行编码再放入cookie中: String userna ...
- 关于url传参中文乱码问题
之前都一直很不了解中文编码得问题,之前在做项目中没碰到那么头痛的问题.所以一直没有了解中文乱码的问题. 问题描述: 地址: http://localhost:8080/sun-government/c ...
- 近期在调用 calendar.js 的时候出现中文乱码! 解决方式
近期写一个小项目的时候:在调用 calendar.js 的时候出现中文乱码! 如图所看到的: 原因在于: 我的jsp 页面,指定的是 UTF-8 编码,然而,调用的 calendar.js 的编码确 ...
- JS传参中文乱码
在传参的时候给中文参数加上两个encodeURI即可,类似这样: encodeURI(encodeURI(balanceUnit)) 写法二 escape(encodeURI(tmplItem.hyz ...
- [转]JS Cookie 中文乱码
首先是一个解析cookie的函数: <script type="text/javascript"> function getCookie(name) { var c ...
- JS传参中文乱码问题.NET
前台js代码 window.location.href = "/product.aspx?id=2&title=" +encodeURIComponent(strtitle ...
- window.location.href 传参中文乱码问题!!!
不是所有地方都会用Ajax 当你使用window.location.href 来传中文参数的时候 如何避免乱码问题 js 是这样写的 下面代码中 方式 封装编码 参数 username ...
- get请求中url传参中文乱码问题
在项目中经常会遇到中文传参数,在后台接收到乱码问题.那么在遇到这种情况下我们应该怎么进行处理让我们传到后台接收到的参数不是乱码是我们想要接收的到的,下面就是我的一些认识和理解. 一:get请求url中 ...
随机推荐
- 【转】ListView学习笔记(二)——ViewHolder
在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候, ...
- 转发;Dota英文名
http://esports.17173.com/content/2011-02-17/20110217163225753.shtml 有的英雄的名字真的很漂亮,也给那些学校里英文各种悲剧的同鞋增加点 ...
- [日常训练]training
Description 一条线上有栋楼,第栋楼有层,每层有1个价值为的物品. 可以花费1个单位时间完成以下3种移动: 1.在同一栋楼中向上或者向下走一层; 2.如果此刻在顶楼,可以通往1楼; 3.从当 ...
- 【faster-rcnn】训练自己的数据——修改图片格式、类别
修改图片格式 matlab代码 其实内部一些代码是用了rbg的fast-rcnn代码的. \datasets\VOCdevkit2007\VOCcode\VOCinit.m里面,查找'jpg',改成' ...
- php发送http put/patch/delete请求
今天学RESTful API的编写,发现不知道怎么发送HTTP PUT/PATCH/DELETE请求,还是要学习一个. 使用curl_opt函数来发送各式各样的http请求动作,不仅限于get和pos ...
- 【BZOJ-4008】亚瑟王 概率与期望 + DP
4008: [HNOI2015]亚瑟王 Time Limit: 20 Sec Memory Limit: 512 MBSec Special JudgeSubmit: 832 Solved: 5 ...
- C++11之thread线程
今天由于项目需求(其实是某门课的一个大作业,不好意思说出口啊...),想要使用多线程.相信大家一般用的是linux上的POSIX C或windows上的线程库,然而这些线程库以来于特定系统,并不“标准 ...
- Database(Mysql、Sqlserver) Configuration Security Reinforcement
目录 . 引言 . Mysql . Sqlserver 1. 引言 黑客获取了数据库的帐号密码之后,就可以通过Database Client登录数据库,利用SQL指令.数据库指令执行组件进行进一步的提 ...
- C# 生成xml文件
本篇文章旨在.net环境下生成xml文件,以控制台应用程序为例进行说明. 1.在vs中新建控制台应用程序CreateXml 2.CreateXmlFile:主要生成xml的函数 public void ...
- TypeScript Class(类)
传统的JavaScript注重用函数和基于原型的继承来创建可复用的组件,但这可能让用习惯面对对象方式的程序员感到棘手,因为他们的继承和创建对象都是由类而来的.从JavaScript的下一个版本,ECM ...