在我的php.ini文件中,我添加了mbstring.internal_encoding = "UTF-8"
。 (我试过或不加双引号,大写与否。)
然而,当我运行echo "current internal encoding: ".mb_internal_encoding();
时,我仍然获得ISO-8859-1。
为什么会这样,我在php.ini文件中可以做些什么来一劳永逸地设置内部编码?
我在WinXP笔记本电脑上使用WAMPserver。
答案 0 :(得分:3)
正如评论中所提到的,这是因为通常至少有两个php.ini文件:一个用于命令行版本,一个用于Apache插件。你需要确保编辑正确的。
这不是一个不常见的问题,我以前一直被它咬过。
答案 1 :(得分:0)
为了确保覆盖你的default_charset php.ini使用这种方式,使用ini_set('default_charset','你的Charset');
在开始时把这段代码放在每个php文件中......
示例:index.php
<?php
$server_root = realpath($_SERVER["DOCUMENT_ROOT"]);
$config_serv = "$server_root/php/config.php";
include("$config_serv");
?>
然后在根服务器中创建一个文件夹“php”并放入此文件...这段代码服务于latin1覆盖utf-8 ......
的config.php
<?php
##########################################################################
# Server Directive - Override default_charset utf-8 to latin1 in php.ini #
##########################################################################
@ini_set('default_charset', 'ISO-8859-1');
?>
或另一个......这段代码服务于utf-8覆盖latin1 ...... 根据您的需要使用第一个或第二个......
的config.php
<?php
##########################################################################
# Server Directive - Override default_charset latin1 to utf-8 in php.ini #
##########################################################################
@ini_set('default_charset', 'UTF-8');
?>