這一個可能很容易,但似乎是我的服務器(或我自己)的問題。爲什麼PHP標題(字符集)在HTML <元字符集>中不起作用?
我有這樣一段代碼在index.php
:
<?php
header('Content-Type: text/html; charset="UTF-8"');
// Some code for generating data to be displayed
foreach ($ObjectArray as $SingleObject) {
print_r($SingleObject->getAllProperties());
}
而且它這樣做:
但我不希望使用header('Content-Type: text/plain; charset="UTF-8"');
- 我寧願包括HTML我的代碼header.htm
:
<html>
<head>
<meta charset="UTF-8">
<title>Test Cards</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script src="jquery-3.1.0.min.js"></script>
<link rel="stylesheet" href="jquery-ui.css">
<script src="jquery-ui.js"></script>
</head>
我index.php
這樣的:
<?php
include 'view/header.htm';
echo '<body>';
// Some code for generating data to be displayed
foreach ($ObjectArray as $SingleObject) {
print_r($SingleObject->getAllProperties());
echo '</body>';
echo '</html>';
}
不幸的是,這是不太好。字符集仍然被公認爲是UTF-8,但結果卻是遠離我的期望:
請告訴我,發生了什麼,以及如何處理這類問題。這是一個結合HTML和PHP的案例(當HTML不存在時,乾淨的PHP會使用一些奇特的樣式嗎?)或者在我的代碼中可能存在一些錯誤?提前:)
HTML和PHP標頭是不同的 - 兩者都應該設置爲UTF-8(或其他,只要它們是相同的),就像你的整個代碼管道一樣。否則,您可能會在您的網頁上顯示損壞的字符。 – Qirel
@Qirel這個不起眼的部分是,當我在應用HTML代碼之前設置PHP標題時,HTML代碼確實顯示爲純文本輸出,而不是HTML代碼... 編輯:好的,我將「text/plain」更改爲在header()函數中使用'text/html',但它仍然看起來非常糟糕,沒有在添加header.htm之前工作的分割線... – Krzysztof