织梦自定义模型的字段 不显示中文的问题

由于公司需要多出几个字段用来描述文章,一开始是直接在普通文章的模型里新增一些字段的,后来发现有些字段显示为空,不确定是什么问题,于是新增了一个自定义的内容模型并且新增了一些自定义的字段,发现问题还是存在。排查之后发现是在字段名称存在中文的情况下才显示为空。于是就各种百度,发现问题发生在HtmlReplace()函数中,找到该函数,文件位于\include\helpers\filter.helper.php中,找到该函数

织梦自定义模型的字段 不显示中文的问题

看到htmlspecialchars()函数就大概知道是这个内置函数的问题了(之前已经被坑过了。。)。由于文件编码是gbk2312.该函数在gbk2312的编码下htmlspecialchars()过滤含有中文字符时会输出为空。具体看一下实例:

在utf-8文件编码下:

<?php

$str='我是中文';

echo htmlspecialchars($str);

?>

//输出结果正常显示

在gb2312文件编码下:

输出为空

为了能支持gbk输出中文添加一个参数即可:

htmlspecialchars($str,ENT_COMPAT,'ISO-8859-1');

参考文章:

https://www.jb51.net/article/63392.htm

http://www.dede58.com/a/zhimengjiaocheng/dedefault/4875.html)