2012-04-08 13 views
4

UTF-8でPHPファイルをエンコードする際に非常に奇妙な問題が発生しています。たとえば、index.phpとrequire.phpの2つのファイルがあります。 index.phpのファイルでは、私は私が唯一の空のPHPタグUTF-8 PHPファイルが必要です

<?php 

?> 

私はindex.phpを開き、HTMLを出力Iを参照してChromeの要素インスペクタを使用してい

require.phpで
<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="UTF-8"> 
</head> 
<?php 
require 'require.php'; 
?> 
<body> 
<a></a> 
</body> 
</html> 

このコードを持っていますこれを入手してください:

<html> 
<head> 
<meta charset="UTF-8"> 
</head> 
<body> 
" 
" 
<a></a> 
</body> 
</html> 

本文の先頭に2つの奇妙な引用符があることに注意してください。 PHPコードからrequireステートメントを削除した場合、または単にそれらが消滅したタグを削除した場合。見知らぬ人は、require.phpファイルに何かをエコーすると、それらの2つの引用符の間に出力されるということです。 require.phpのUTF-8からANSIへエンコーディングを変更すると問題が解消する

私は何時間も答えを探していて、同じ問題を抱えている人はいませんでした。

+0

[ 'file'](http://en.wikipedia.org/wiki/File_(コマンド))エンコーディングのindex.phpとrequire.phpについて何と言っていますか?両方ともUTF-8にエンコードされていますか? – Rob

+0

ヘキサエディタを使用して、Chromesの表示ソースなどの視覚化ではなく、実際の内容を表示します。 – mario

+2

標準的な推測:あなたはBOMを持っています。そのキーワードを検索してください。 – deceze

答えて

1

のindex.phpにheader('Content-type: text/html; charset=utf-8');を追加してみて、エンディング '?>' require.phpからを削除します。

1

ヘッダーを追加した後に悪化しました。ただし、ファイルをBOMなしでUFT-8に変換すると、私の仕事になります!ありがとうございました。

0

あなたは平文ファイルを送信する場合、あなたはこれを必要とします...

<?php 
    header('Content-type: text/plain; charset=utf-8'); 
    print('中文。'); 
?> 

HTMLを送信するために、あなたは「text/htmlの」へのヘッダーの「text/plainの」を変更する必要があります。

関連する問題