4

UTF-8 での PHP ファイルのエンコードに関して、非常に奇妙な問題が発生しています。たとえば、index.php と require.php の 2 つのファイルがあります。index.php ファイルには、このコードがあります

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

require.php には、空の PHP タグしかありません

<?php

?>

index.php を開き、Chrome の Element Inspector を使用して出力 HTML を表示すると、次のようになります。

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

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

私は何時間も答えを探していましたが、同じ問題を抱えている人は一人も見つかりませんでした.

4

3 に答える 3

1

ヘッダーを追加した後、さらに悪化しました。ただし、ファイルを BOM なしの UFT-8 に変換することはうまくいきました。ありがとうございました。

于 2015-02-28T08:01:18.467 に答える
1

index.php に追加header('Content-type: text/html; charset=utf-8');して、require.php から末尾の '?>' を削除してみてください。

于 2012-04-08T14:10:23.503 に答える
0

平文ファイルを送信する場合は、これが必要になります...

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

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

于 2016-08-07T22:38:24.343 に答える