解决DEDE中UrlEncode乱码的问题

我们知道,用火车采集器发布数据时,可能会需要使用UrlEncode发布。如:空格丢失,内容中含有&等可能隔断参数的符号等,由于DEDE默认没有加入对变量的转码处理,所以,使用UrlEncode发布到DEDE时,会出现乱码现像。

此文为解决办法。

修改DEDE管理员目录,默认为dede。

在dede/config.php末尾中加一段代码即可

以下为图片示例,看得清楚一些:

代码如下:

//给POST变量做转码处理,适用于火车采集器中Urlencode发布的内容
foreach($_POST as $key=>$value){ !is_array($value) && ${$key} = $_POST[$key] = urldecode($value); }

如果要遍历数组,对所有值进行处理的话,我写了一个递归函数,适于用所有变量,包括变量中的数组,非技术人员可以飞过。

function ArrayUrldecode($_POST){
 foreach($_POST as $key=>$value){
 if(is_array($value)){
 ArrayUrldecode($value);
 }else{
 $_POST[$key] = urldecode($value);
 }
 }
 return $_POST;
}

《解决DEDE中UrlEncode乱码的问题》有9个想法

  1. 5。6 gbk
    按你的改了,采集发布成功
    但是后台,不能编辑文章
    点击编辑文章,就一片空白
    谢谢,求解

    编辑文章出现空白,这可能与本文提供方法无关,你看看手工发布文章是否正常!

  2. 领导好 请问一下 我改了这个参数 测试时是发上去了(本地的) 可是到发布的时候(采回来的数据发布) 却发布不上去 没有任何提示 只提示发布成功 但文章没有见着 我发的是SHOP模块的 不知道为什么

发表评论

电子邮件地址不会被公开。