2011-08-05 2 views
1

まず、この問題専用のすべての記事を読みましたが、答えが見つかりませんでした。 コードは完全にANSIで動作しますが、私はutf8にエンコーディングを変更したときに次のエラーが表示されますutf8で「Сannotヘッダー情報を変更する」というエラーが表示されますが、これを克服する方法はありますか?

  • 警告:ヘッダー情報を変更することはできません - すでにによって送られたヘッダは(出力がCで開始:\ xampplite \ htdocsにアレックス\。 PHPは:1)Cで:

ライン2上の\ xampplite \ htdocsに\ alex.php -

<?php 
header("Content-Type: image/png"); 
$im = @imagecreate(110, 20) 
    or die("Cannot Initialize new GD image stream"); 
$background_color = imagecolorallocate($im, 0, 0, 0); 
$text_color = imagecolorallocate($im, 233, 14, 91); 
imagestring($im, 1, 5, 5, "A Simple Text Привет", $text_color); 
imagepng($im); 
imagedestroy($im); 
?> 

コードの出力は、文章と生成された画像でなければなりません。

BOMを使用しないでutf8に保存すると、全く異なる文字が表示されます。私はBOMなしUTF8で保存した場合

例えばスクリプトの出力は次のようになります。

enter image description here しかし、私はこの文を期待:「シンプル・テキストПривет」

答えて

3

あなたはおそらく持っていますBOM(byte-order mark)をファイルの先頭に追加します。開始タグ<?phpの前には、PHPコードが実行される前に出力されます。 BOMなしでUTF-8ファイルを作成および編集できるエディタを使用します(たとえば、Notepad ++)。

+0

は全く異なるキャラクターを持って! – Alex

+0

@alexey:どうしてですか?ファイル内のすべての文字が変更されましたか?新しいものが最初に現れましたか?どうやってそれを保存していますか? – delnan

+0

私はnotepad ++を使ってエンコードを変更します。ファイル内のすべての文字が変更されるわけではありません。私のエディタでは、それらは良い方法で視覚化されていますが、スクリプトの出力では混乱します。ファイルは.phpに保存されます – Alex

1

@デルナンが正しい。

変更する前にエンコードを保持するには、テキストをクリップボードに切り取り(Ctrl + X)、エンコードを変更してから、テキストを(CTRL + V)に貼り付けます。

1

BOMなしのUTF-8を使用すると、あなたのPHPファイルの開始時にこれを貼り付けます。BOM Aのない私は、UTF-8で保存した場合

header('Content-Type: text/html; charset=UTF-8'); 
関連する問題