52杰奇论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5404|回复: 0

杰奇1.8以上版本出现的部分中文不显示的问题

[复制链接]

597

主题

251

回帖

100万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1004945
发表于 2022-4-23 16:00:00 | 显示全部楼层 |阅读模式

杰奇1.8在使用5.3以上版本时,会出现分类无法显示;后台很多地方的中文不能显示的问题。
其实原因很简单,这是PHP 5.4 中经 htmlspecialchars 转义后的中文字符串为空的问题。

PHP 从 5.4.0 版本开始第三个参数字符串编码的默认值改成了 UTF-8,而我这段代码中的中文编码正好是 GB2312 编码的,跟现在的默认参数不一致,于是更改调用参数如下:

$str = '中文字符串';# 为了与旧环境兼容,这里第二个参数没有组合使用 PHP 5.4 新加入的 ENT_HTML401 常量$str_converted = htmlspecialchars($str, ENT_COMPAT ,'GB2312');echo $str_converted;

这样,“中文字符串”就可以正常显示了。为了使 PHP 5.4 之前环境中编写的代码能够向前兼容,建议调用 htmlspecialchars 函数的的时候都提供字符串编码参数。

对应杰奇的,请修改globay.php文件,修改以下函数。

function jieqi_htmlstr($str, $quote_style = ENT_QUOTES){        $str = htmlspecialchars($str, $quote_style,'GB2312');        $str = nl2br($str);        $str = str_replace(array('  ', '&'), array('  ', '&'), $str);        return $str;}

相关帖子

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|52杰奇论坛  

GMT+8, 2024-4-27 20:49 , Processed in 1.724756 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表