2012-02-25 5 views
3

私のphp.iniファイルには、mbstring.internal_encoding = "UTF-8"が含まれています。 (私は二重引用符の有無にかかわらず、大文字または小文字ではありません)私のphp.iniファイルにutf-8を指定したとき、私の内部エンコーディングISO-8859-1はなぜですか?

echo "current internal encoding: ".mb_internal_encoding();を実行すると、まだISO-8859-1が取得されます。

これはなぜですか?また、内部的なエンコーディングを設定するためにphp.iniファイルで何ができるのですか?

私はWinXPノートパソコンでWAMPserverを使用しています。

+1

ときphp.iniファイルを変更すると、Apacheを再起動しますか? – fire

+0

はい - 私はWAMPをシャットダウンしており、コンピュータをシャットダウンすることさえあります。 – JDelage

+2

私は自分のサーバー上でテストしましたが、その変更は 'mb_internal_encoding()'の出力に影響しました。トレイアイコンを左クリックし、PHP - > php.iniを選択して、適切なphp.iniファイルを編集していることを確認してください。 – spencercw

答えて

3

コメントに記載されているように、通常は少なくとも2つのphp.iniファイル(コマンドラインバージョン用とApacheプラグイン用)があるためです。あなたは正しいものを編集する必要があります。

これは珍しい問題ではありません。私は確かに前にそれに噛まれています。

0

あなたのphp.iniのdefault_charsetをこの方法でオーバーライドするには、ini_set( 'default_charset'、 'Your Charset')を使用してください。各PHPファイルに

プット冒頭にコードのこの作品...

例:

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

index.phpで、あなたのルートサーバ内のフォルダ「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'); 
?> 

またはこの他の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'); 
?> 
関連する問題