后台的信息筛选搜索功能只能用英文和数字
在后台的信息搜索里,只能用英文和数字搜索得出,中文的就不行,为什么呢,是不是和版本的编码方式有关。static/image/common/none.gif
3.png (9.26 KB, 下载次数: 0)
下载附件
2016-3-17 09:46 上传
比如人才管理模块,真实姓名里,用中文就搜索不出人了。但如果我换一个人的姓名为英文或数字,用英文或数字就能搜索得出。这样一测试,就是用中文搜不出,问题何在....编码的问题吗
我的可以
你是什么版本的?
这个和网站编码没有关系,有没有修改过文件
龙在天涯 发表于 2016-3-18 09:12
这个和网站编码没有关系,有没有修改过文件
问题找到了....
GBK版字符判断函数的问题
liangshengyi99 发表于 2016-3-18 09:59
问题找到了....
GBK版字符判断函数的问题
哦,可以将解决方法分享下
http://bbs.destoon.com/static/image/smiley/default/lol.gif
http://bbs.destoon.com/static/image/smiley/default/lol.gif
http://bbs.destoon.com/static/image/smiley/default/lol.gif
龙在天涯 发表于 2016-3-21 09:03
哦,可以将解决方法分享下
include/safe.func.php 文件中
函数 dhtmlspecialchars有问题,具体调整办法为:
将现在的函数
function dhtmlspecialchars($string) {
if(is_array($string)) {
return array_map('dhtmlspecialchars', $string);
} else {
if(defined('DT_ADMIN')) {
return str_replace(array('&'), array('&'), htmlspecialchars($string, ENT_QUOTES));
} else {
return str_replace(array('&', '"', '"', '"'), array('&', '', '', ''), htmlspecialchars($string, ENT_QUOTES));
}
}
}
替换为:
function dhtmlspecialchars($string) {
$encoding = 'utf-8';
if(DT_CHARSET=='gbk')
{ $encoding = 'gb2312'; }
if(is_array($string)) {
return array_map('dhtmlspecialchars', $string);
} else {
if(defined('DT_ADMIN'))
{
return str_replace(array('&'), array('&'), htmlspecialchars($string, ENT_QUOTES,$encoding));
} else {
return str_replace(array('&', '"', '"', '"'), array('&', '', '', ''), htmlspecialchars($string, ENT_QUOTES,$encoding));
}
}
}
已经测试,暂时没有发现问题
liangshengyi99 发表于 2016-3-23 09:50
include/safe.func.php 文件中
函数 dhtmlspecialchars有问题,具体调整办法为:
将现在的函数
不错,支持楼主分享
页:
[1]