serialize生成的串问题 在做程序移植的时候,出现这么一个怪事通过php的serialize函数生成的串解不出来,我把serialize串考到我笔记本上也解不出来,编码都是utf8的,而且都是lamp的环境 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 序列化serialize 和反序列化unserialize 是要成对出现的。 忘记说明用unserialize解,我当然是用unserialize解呀,解不出来 header('content-type: text/html; charset=utf-8');$str='a:2:{i:1;a:3:{i:12597187292584;a:5:{s:10:"spec_value";s:6:"黑色";s:9:"spec_type";s:3:"img";s:13:"spec_value_id";s:3:"696";s:10:"spec_image";s:38:"/images/200911/1259566425581778739.jpg";s:15:"spec_value_face";s:0:"";}i:12597187306371;a:5:{s:10:"spec_value";s:9:"银灰色";s:9:"spec_type";s:3:"img";s:13:"spec_value_id";s:3:"698";s:10:"spec_image";s:38:"/images/200911/1259566506152191635.jpg";s:15:"spec_value_face";s:0:"";}i:12597187316664;a:5:{s:10:"spec_value";s:6:"咖色";s:9:"spec_type";s:3:"img";s:13:"spec_value_id";s:3:"695";s:10:"spec_image";s:38:"/images/200911/1259309691356943924.jpg";s:15:"spec_value_face";s:0:"";}}i:2;a:6:{i:12597187492596;a:5:{s:10:"spec_value";s:3:"70B";s:9:"spec_type";s:3:"txt";s:13:"spec_value_id";s:3:"369";s:10:"spec_image";s:0:"";s:15:"spec_value_face";s:0:"";}i:12597187503339;a:5:{s:10:"spec_value";s:3:"75A";s:9:"spec_type";s:3:"txt";s:13:"spec_value_id";s:3:"371";s:10:"spec_image";s:0:"";s:15:"spec_value_face";s:0:"";}i:12597187501784;a:5:{s:10:"spec_value";s:3:"75B";s:9:"spec_type";s:3:"txt";s:13:"spec_value_id";s:3:"372";s:10:"spec_image";s:0:"";s:15:"spec_value_face";s:0:"";}i:12597187517702;a:5:{s:10:"spec_value";s:3:"80A";s:9:"spec_type";s:3:"txt";s:13:"spec_value_id";s:3:"374";s:10:"spec_image";s:0:"";s:15:"spec_value_face";s:0:"";}i:12597187519754;a:5:{s:10:"spec_value";s:3:"80B";s:9:"spec_type";s:3:"txt";s:13:"spec_value_id";s:3:"375";s:10:"spec_image";s:0:"";s:15:"spec_value_face";s:0:"";}i:12597187524226;a:5:{s:10:"spec_value";s:3:"85A";s:9:"spec_type";s:3:"txt";s:13:"spec_value_id";s:3:"377";s:10:"spec_image";s:0:"";s:15:"spec_value_face";s:0:"";}}}';print_r(unserialize($str)); 你的串中有 s:6:"黑色"; 显然这是 utf-8 编码的Array( [1] => Array ( [48213416] => Array ( [spec_value] => 黑色 [spec_type] => img [spec_value_id] => 696 [spec_image] => /images/200911/1259566425581778739.jpg [spec_value_face] => ) [48227203] => Array ( [spec_value] => 银灰色 [spec_type] => img [spec_value_id] => 698 [spec_image] => /images/200911/1259566506152191635.jpg [spec_value_face] => ) [48237496] => Array ( [spec_value] => 咖色 [spec_type] => img [spec_value_id] => 695 [spec_image] => /images/200911/1259309691356943924.jpg [spec_value_face] => ) ) [2] => Array ( [48413428] => Array ( [spec_value] => 70B [spec_type] => txt [spec_value_id] => 369 [spec_image] => [spec_value_face] => ) [48424171] => Array ( [spec_value] => 75A [spec_type] => txt [spec_value_id] => 371 [spec_image] => [spec_value_face] => ) [48422616] => Array ( [spec_value] => 75B [spec_type] => txt [spec_value_id] => 372 [spec_image] => [spec_value_face] => ) [48438534] => Array ( [spec_value] => 80A [spec_type] => txt [spec_value_id] => 374 [spec_image] => [spec_value_face] => ) [48440586] => Array ( [spec_value] => 80B [spec_type] => txt [spec_value_id] => 375 [spec_image] => [spec_value_face] => ) [48445058] => Array ( [spec_value] => 85A [spec_type] => txt [spec_value_id] => 377 [spec_image] => [spec_value_face] => ) ))有什么不对吗?如果有,就是编码问题了你需要将程序保存为 utf-8 编码的如果是 gbk 编码方式,则需要转换一下编码print_r(unserialize(iconv('gbk', 'utf-8', $str))); 似乎答案快出来了,多谢唠叨大侠,我想再确认一下你php是什么和apache是什么版本的,我的笔记本上用这句话print_r(unserialize(iconv('gbk', 'utf-8', $str)));还是没有解出来 相关信息见手册 LXII. iconv Functionsphp 4.2.3 以后就默认安装了 你看看你的php文件是什么编码格式。。我也帮你运行了一下,是这个结果!~ php加载php_soap.dll提示应用程序错误 迁移到win server03后PHP有些网页不能正确显示 求一个php分页解释来学习 DedeCMS5.6版本 求一个开源的文件管理系统 memcache如何定期删除不常用的数据 删除多条记录的问题 qq sdk 登录获取用户信息的时候报错。有什么解决方法? 有用php做过阿里云ots的吗,protocol buffer数据交换格式一直无法搞定 discuz!7.2如何将首页帖子列表链接变为静态链接? php调用使用dll文件,问题请教. phpcms
header('content-type: text/html; charset=utf-8');
$str='a:2:{i:1;a:3:{i:12597187292584;a:5:{s:10:"spec_value";s:6:"黑色";s:9:"spec_type";s:3:"img";s:13:"spec_value_id";s:3:"696";s:10:"spec_image";s:38:"/images/200911/1259566425581778739.jpg";s:15:"spec_value_face";s:0:"";}i:12597187306371;a:5:{s:10:"spec_value";s:9:"银灰色";s:9:"spec_type";s:3:"img";s:13:"spec_value_id";s:3:"698";s:10:"spec_image";s:38:"/images/200911/1259566506152191635.jpg";s:15:"spec_value_face";s:0:"";}i:12597187316664;a:5:{s:10:"spec_value";s:6:"咖色";s:9:"spec_type";s:3:"img";s:13:"spec_value_id";s:3:"695";s:10:"spec_image";s:38:"/images/200911/1259309691356943924.jpg";s:15:"spec_value_face";s:0:"";}}i:2;a:6:{i:12597187492596;a:5:{s:10:"spec_value";s:3:"70B";s:9:"spec_type";s:3:"txt";s:13:"spec_value_id";s:3:"369";s:10:"spec_image";s:0:"";s:15:"spec_value_face";s:0:"";}i:12597187503339;a:5:{s:10:"spec_value";s:3:"75A";s:9:"spec_type";s:3:"txt";s:13:"spec_value_id";s:3:"371";s:10:"spec_image";s:0:"";s:15:"spec_value_face";s:0:"";}i:12597187501784;a:5:{s:10:"spec_value";s:3:"75B";s:9:"spec_type";s:3:"txt";s:13:"spec_value_id";s:3:"372";s:10:"spec_image";s:0:"";s:15:"spec_value_face";s:0:"";}i:12597187517702;a:5:{s:10:"spec_value";s:3:"80A";s:9:"spec_type";s:3:"txt";s:13:"spec_value_id";s:3:"374";s:10:"spec_image";s:0:"";s:15:"spec_value_face";s:0:"";}i:12597187519754;a:5:{s:10:"spec_value";s:3:"80B";s:9:"spec_type";s:3:"txt";s:13:"spec_value_id";s:3:"375";s:10:"spec_image";s:0:"";s:15:"spec_value_face";s:0:"";}i:12597187524226;a:5:{s:10:"spec_value";s:3:"85A";s:9:"spec_type";s:3:"txt";s:13:"spec_value_id";s:3:"377";s:10:"spec_image";s:0:"";s:15:"spec_value_face";s:0:"";}}}';
print_r(unserialize($str));
(
[1] => Array
(
[48213416] => Array
(
[spec_value] => 黑色
[spec_type] => img
[spec_value_id] => 696
[spec_image] => /images/200911/1259566425581778739.jpg
[spec_value_face] =>
) [48227203] => Array
(
[spec_value] => 银灰色
[spec_type] => img
[spec_value_id] => 698
[spec_image] => /images/200911/1259566506152191635.jpg
[spec_value_face] =>
) [48237496] => Array
(
[spec_value] => 咖色
[spec_type] => img
[spec_value_id] => 695
[spec_image] => /images/200911/1259309691356943924.jpg
[spec_value_face] =>
) ) [2] => Array
(
[48413428] => Array
(
[spec_value] => 70B
[spec_type] => txt
[spec_value_id] => 369
[spec_image] =>
[spec_value_face] =>
) [48424171] => Array
(
[spec_value] => 75A
[spec_type] => txt
[spec_value_id] => 371
[spec_image] =>
[spec_value_face] =>
) [48422616] => Array
(
[spec_value] => 75B
[spec_type] => txt
[spec_value_id] => 372
[spec_image] =>
[spec_value_face] =>
) [48438534] => Array
(
[spec_value] => 80A
[spec_type] => txt
[spec_value_id] => 374
[spec_image] =>
[spec_value_face] =>
) [48440586] => Array
(
[spec_value] => 80B
[spec_type] => txt
[spec_value_id] => 375
[spec_image] =>
[spec_value_face] =>
) [48445058] => Array
(
[spec_value] => 85A
[spec_type] => txt
[spec_value_id] => 377
[spec_image] =>
[spec_value_face] =>
) ))有什么不对吗?
如果有,就是编码问题了
你需要将程序保存为 utf-8 编码的
如果是 gbk 编码方式,则需要转换一下编码
print_r(unserialize(iconv('gbk', 'utf-8', $str)));
我的笔记本上用这句话print_r(unserialize(iconv('gbk', 'utf-8', $str)));还是没有解出来