开启左侧

[Discuz] 【已解决】Discuz! X3.4 UTF8 无法显示一些生僻字/古文/Emoji

[复制链接]
dztest123 发表于 2018-7-19 14:23:21 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
本帖最后由 dztest123 于 2018-7-21 16:46 编辑

141945g3hjo10a37lp31az.jpg

141945g3hjo10a37lp31az.jpg

网 wang 的生僻字


搭建古文研究论坛,古文/生僻字,可以在编辑面板显示,证明字库里有这些字,但发帖之后显示空白,被DZ过滤掉了?
服务器信息

141723kma94116ta91t7ys.jpg

141723kma94116ta91t7ys.jpg

用论坛搜索问题
source\function\function_core.php  
[color=]删除了红色部分代码
function dhtmlspecialchars($string, $flags = null) {
        if(is_array($string)) {
                foreach($string as $key => $val) {
                        $string[$key] = dhtmlspecialchars($val, $flags);
                }
        } else {
                if($flags === null) {
                        $string = str_replace(array('&', '"', ''), array('&', '"', ''), $string);
                        if(strpos($string, '&#') !== false) {
                                $string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4}));)/', '&\\1', $string);
                        }
                } else {
                        if(PHP_VERSION
发现X3.4  UTF8 版并没有这一段代码,依然不能显示,实在无法解决,求助!!!
回复

使用道具 举报

精彩评论10

 楼主| dztest123 发表于 2018-7-21 13:13:18 | 显示全部楼层
本帖最后由 dztest123 于 2018-7-21 16:57 编辑
感谢,10楼,mingkong 大哥
问题成功解决了
让论坛支持4字节的utf8mb4编码,只需要使用notepad++,替换文件夹下一些数据即可
varchar(255) 字符全部替换为 varchar(243)
char(255) 字符全部替换为 char(243)
[color=](6 + 255) * 4  > 1000 ,超过1000 ,故用(243)
'utf8'  字符全部替换为  'utf8mb4' (
[color=]注意带'号,不是替换utf-8

[color=]数据库备份的sql文件,需要
[color=]全部
[color=]替换。
然后重装论坛,恢复数据库即可。
效果如下:

163457umqkzzc9l34ujggk.jpg

163457umqkzzc9l34ujggk.jpg

回复 支持 反对

使用道具 举报

 楼主| dztest123 发表于 2018-7-19 14:25:40 | 显示全部楼层
𠕃𦉽𦋟𦉮
回复 支持 反对

使用道具 举报

 楼主| dztest123 发表于 2018-7-19 14:29:15 | 显示全部楼层

142716zid1fo1oznfk2zdn.jpg

142716zid1fo1oznfk2zdn.jpg

http://www.discuz.net
官网论坛GBK显示乱码,但UTF8连乱码都没有。???
回复 支持 反对

使用道具 举报

 楼主| dztest123 发表于 2018-7-19 14:54:30 | 显示全部楼层
另求教,如何添加
[color=].ttf
字体文件,添加字体使用自定义字体,替换掉当前字体,如:“把当前字,替换为甲骨文字体”。
目前WordPress有这个功能,DZ实在找不到相关资料

,不知道是不是添加到
[color=]upload\static\image\seccode\font\en
    文件夹下有默认的
[color=].ttf
,但不知道怎么弄

,求助!!!
回复 支持 反对

使用道具 举报

 楼主| dztest123 发表于 2018-7-19 15:52:39 | 显示全部楼层
那教程说的就是X3.4删除了这段代码,而不是说X3.4有这段代码
回复 支持 反对

使用道具 举报

 楼主| dztest123 发表于 2018-7-19 16:26:04 | 显示全部楼层
本帖最后由 dztest123 于 2018-7-19 16:36 编辑

民审大大 发表于 2018-7-19 15:52

那教程说的就是X3.4删除了这段代码,而不是说X3.4有这段代码

亲爱的民审大大,我的意思是,有没有这段代码都不行的.
不知道UTF8版的DZ,是在那个位置把这些字过滤了,或不支持。

163421lkurprwtco1cppb7.jpg

163421lkurprwtco1cppb7.jpg

163640wju0aka56665j6bj.jpg

163640wju0aka56665j6bj.jpg

参见:
http://www.baike.com/wiki/%25E7%25BD%2591


以上这些字GBK版还可以显示乱码,在UTF8版直接被吃掉。
"

回复 支持 反对

使用道具 举报

 楼主| dztest123 发表于 2018-7-19 15:52:00 | 显示全部楼层
自建php文件,使用utf-8可以正常显示,服务器不纯在问题。

171053q7fo8dcdcpxdq87z.jpg

171053q7fo8dcdcpxdq87z.jpg

DZ会把生僻字及后面的所有字,通通吃掉

回复 支持 反对

使用道具 举报

 楼主| dztest123 发表于 2018-7-19 17:13:28 | 显示全部楼层
本帖最后由 dztest123 于 2018-7-19 18:19 编辑

180539ay26kvlykkgyi36z.jpg

180539ay26kvlykkgyi36z.jpg

GBK 已解决,只是显示问题,UTF8 不适用 根本就发不出去

回复 支持 反对

使用道具 举报

mingkong 发表于 2018-7-19 18:07:15 | 显示全部楼层

utf8 版本 按楼上更改后,发编码,如𠕃𦉽𦋟𦉮 可以显示。
但直接发字会被过滤掉,直接白板,不会PHP,求DZ程序员大大们解决

回复 支持 反对

使用道具 举报

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

本版积分规则

关注0

粉丝0

帖子1

发布主题
阅读排行 更多
广告位
源码搜论坛官方二维码 官方交流平台

域名:codesou.com

名称:源码搜论坛

站长:1943759704

QQ群:831818825

全国服务热线:

400-123-456789

(工作日:周一至周五 9:00-16:00)
重庆市渝中区中山三路21号
1943759704@qq.com

Archiver-手机版-小黑屋- 源码搜论坛

Copyright © 2018-2022 源码搜论坛版权所有!   渝ICP备14006307号-4

工商网监 安全联盟实名认证 安全联盟认证 财付通合作商家 支付宝合作商家