返回列表

[Discuz!] Discuz!支持超大字符集的方法

为什么Ext-B的汉字会被显示成:【𠀀】,其原因是系统对&#后面超过5位数字的编码无法正确处理造成的,而Ext-B(扩展B)的汉字都是大于131071的编码,超过5位数,所以一律被显示成乱码。

Discuz! X系列修改方法
编辑source/function/function_core.php
找到
  1. $string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4}));)/', '&\\1', $string);
复制代码

修改为
  1. $string = preg_replace('/&((#(\d{3,7}|x[a-fA-F0-9]{4}));)/', '&\\1', $string);
复制代码

即可。

Discuz!7.x修改方法
编辑include/global.func.php(Discuz!6.x及以前版本修改/include/global.inc.php)
找到
  1. $string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4}));)/', '&\\1',
复制代码

修改为
  1. $string = preg_replace('/&((#(\d{3,7}|x[a-fA-F0-9]{4}));)/', '&\\1',
复制代码


即可。

返回列表