2012-04-08 11 views
4

Ich habe sehr seltsames Problem in Bezug auf die Codierung von PHP-Dateien in UTF-8. Zum Beispiel habe ich zwei Dateien: index.php und require.php. In index.php Dateien habe ich diesen CodeErfordern UTF-8 PHP-Datei

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

in require.php leer PHP-Tags ich nur

<?php 

?> 

Wenn ich Element Inspector öffnen index.php und verwenden Chrome haben die Ausgabe von HTML ich zu sehen Erhalten Sie das:

Beachten Sie die zwei seltsamen Anführungszeichen am Anfang des Körpers. Wenn ich die require-Anweisung aus dem PHP-Code entferne oder einfach die Tags entferne, verschwinden sie. Was noch seltsamer ist, ist, dass, wenn ich etwas in der Datei "require.php" ausspreche, es zwischen diesen beiden Zitaten ausgegeben wird. Das Problem verschwindet, wenn ich die Kodierung von UTF-8 zu ANSI in require.php ändere

Ich habe nach der Antwort für Stunden gesucht und nicht einzelne Person gefunden, die dasselbe Problem hat.

+0

Was sagt ['file'] (http://en.wikipedia.org/wiki/File_ (command)) über die Kodierung index.php und require.php? Sind beide in UTF-8 kodiert? – Rob

+0

Verwenden Sie einen Hexeditor und zeigen Sie uns den tatsächlichen Inhalt, nicht die Visualisierung der Chromes-Ansichtsquelle oder was auch immer. – mario

+2

Standard-Schätzung: Sie haben eine Stückliste. Suchen Sie nach diesem Keyword. – deceze

Antwort

1

Versuchen Sie header('Content-type: text/html; charset=utf-8'); in index.php hinzufügen, und entfernen Sie die Endung??> Aus require.php.

1

Nach dem Hinzufügen der Kopfzeile schlechter gemacht. Obwohl das Konvertieren der Datei nach UFT-8 ohne BOM für mich funktioniert! Vielen Dank.

0

Wenn Sie eine Klartextdatei senden, werden Sie diese brauchen ...

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

Für HTML zu senden, werden Sie die "text/plain" Header ändern müssen, um "text/html".