当我在php.ini文件中指定了utf-8时,为什么我的内部编码是ISO-8859-1?

当我在php.ini文件中指定了utf-8时,为什么我的内部编码是ISO-8859-1?,php,unicode,localization,Php,Unicode,Localization,在我的php.ini文件中,我包含了mbstring.internal_encoding=“UTF-8”。(我尝试过使用或不使用双引号,大写与否。) 然而,当我运行echo“当前内部编码:”.mb_internal_encoding(),我仍然得到ISO-8859-1 为什么会这样?在php.ini文件中,我能做些什么来一次性地设置内部编码吗 我在WinXP笔记本电脑上使用WAMPserver。如评论中所述,这是因为通常至少有两个php.ini文件:一个用于命令行版本,另一个用于Apache插件

在我的php.ini文件中,我包含了
mbstring.internal_encoding=“UTF-8”
。(我尝试过使用或不使用双引号,大写与否。)

然而,当我运行
echo“当前内部编码:”.mb_internal_encoding(),我仍然得到ISO-8859-1

为什么会这样?在php.ini文件中,我能做些什么来一次性地设置内部编码吗


我在WinXP笔记本电脑上使用WAMPserver。

如评论中所述,这是因为通常至少有两个php.ini文件:一个用于命令行版本,另一个用于Apache插件。您需要确保编辑的是正确的


这不是一个罕见的问题,我以前肯定被它咬过。

要确保覆盖php.ini的默认字符集,请使用ini\u set('default\u charset','Your charset')

把这段代码放在每个php文件的开头

示例:index.php

<?php
  $server_root = realpath($_SERVER["DOCUMENT_ROOT"]);
  $config_serv = "$server_root/php/config.php";
  include("$config_serv");
?>

然后在根服务器中创建一个文件夹“php”,并将此文件。。。这段代码服务于拉丁文1重写utf-8

config.php

<?php
  ##########################################################################
  # Server Directive - Override default_charset utf-8 to latin1 in php.ini #
  ##########################################################################
  @ini_set('default_charset', 'ISO-8859-1');
?>
<?php
  ##########################################################################
  # Server Directive - Override default_charset latin1 to utf-8 in php.ini #
  ##########################################################################
  @ini_set('default_charset', 'UTF-8');
?>

或者这另一个。。。这段代码服务于utf-8重写latin1。。。 根据您的需要使用第一个或第二个

config.php

<?php
  ##########################################################################
  # Server Directive - Override default_charset utf-8 to latin1 in php.ini #
  ##########################################################################
  @ini_set('default_charset', 'ISO-8859-1');
?>
<?php
  ##########################################################################
  # Server Directive - Override default_charset latin1 to utf-8 in php.ini #
  ##########################################################################
  @ini_set('default_charset', 'UTF-8');
?>


当您更改php.ini文件时,是否重新启动Apache?是的-我已经关闭了WAMP,甚至还关闭了计算机。我刚刚在服务器上进行了测试,做出更改确实影响了
mb\u internal\u encoding()的输出。
。通过左键单击任务栏图标并选择php->php.ini,确保您正在编辑正确的php.ini文件。@Spencew-我会被诅咒的,我在
C:\wamp\bin
下找到了2个
php.ini
文件,一个在php下,另一个在apache下。我修改错了。如果你想写一个一句话的答案,我会选择它。谢谢你!