启用 mbstring 时mb_convert_encoding未定义的功能编辑:通过重新编译PHP来修复它(这是我最后的手段,我最初想避免)

2022-08-30 13:57:38

我有一个服务器(Ubuntu 11.10 x64),运行PHP 5.3.8和Apache2 / MySQL。我目前正在从事一个项目,需要我进行一些特定的字符编码,但我发现没有一个多字节(mb_ *函数)工作。

但是,当我查看phpinfo()时,我看到启用了多字节支持。

我尝试过诸如apt-get install php5-mbstring,php-mbstring,php-multibyte等,但似乎没有工作。

任何人都可以为我指出正确的方向吗?提前致谢!

编辑:通过重新编译PHP来修复它(这是我最后的手段,我最初想避免)

./configure --enable-mbstring

奇怪的是,phpinfo()已经表明它已被启用。我不知道为什么它以前不起作用:/


答案 1

默认情况下,许多较新的Linux服务器没有安装PHP Multibyte模块。一个简单的解决方案通常是安装php-mbstring。

在Red Hat版本(CentOS,Fedora等)上,您可以使用yum安装php-mbstring。

确保之后重新启动Apache服务器。在 RH 变种上使用服务 httpd 重新启动。


答案 2

在你安装的情况下,php5.6 类似于 neilsimp1 的解决方案:

运行然后重新启动对我来说是诀窍。sudo apt-get install php7.0-mbstringsudo service php7.0-fpm

sudo apt-get install php5.6-mbstring

然后重新启动 apache 服务

sudo service apache2 restart.

推荐