在我的php.ini文件中,我包含了mbstring.internal_encoding = "UTF-8"
。(我试过带或不带双引号,大写或不大写。)
然而,当我运行echo "current internal encoding: ".mb_internal_encoding();
时,我仍然得到ISO-8859-1。
为什么会这样,在php.ini文件中我能做些什么来一劳永逸地设置内部编码吗?
我在WinXP笔记本电脑上使用WAMPserver。
如注释中所述,这是因为通常至少有两个php.ini文件:一个用于命令行版本,另一个用于Apache插件。你需要确保你编辑的是正确的。
这不是一个罕见的问题,我以前肯定被它咬过。
要确保覆盖php.ini的default_charset,请使用这种方式,使用ini_set('default_charset','Your 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');
?>