今天用dedecms 做站发现首页调用标题显示不全,调用代码又没有设置标题长度限制,怎么会显示不全呢,平时都是可以的,后检查发现这次用的dede cms 版本是UTF-8的,平时用的是GBk的。所以出现了问题。
原因分析:因为UTF-8编码1个中文汉字占用的是3个字节,GBK占用的是2个字节,所以,原先$titlelen = AttDef($titlelen,30)等于对大取30个字节,所以最多只显示11个汉字。
解决方法:
1.进入dedecms的后台,在“模板管理”中的“标签源码管理”,找到arclist.lib.php ,点击“编辑”,找到“$titlelen = AttDef($titlelen,30); ”条语句,把其中的改为60(我改为200,调用的时候再控制字数)或者更大的数值即可。当然你也可以在\include\taglib 这个目录中找到arclist.lib.php,然后同样的方法修改好,再传到你的空间。
2.系统 -> 系统基本参数->其它选项 -> 文档标题最大长度把次参数修改为需要设置的标题最大长度,默认参数是60,我修改成200
3.在后台中,进入系统->系统 SQL命令行工具 中执行以下代码
alter table dede_archives change title title varchar(90)
里面的的varchar(90) 要修改成为你系统设置中填写的最大标题长度数字
或者直接进入数据库找到dede_archives当中修改title的字符数、
4.已经发布过的文章可能在发布的时候标题过长导致标题不全,需要手动一个个的改了