2015-04-23 20 views
2

我在理解爲什麼一臺運行PHP/Apache的服務器正確地格式化特殊字符而另一臺服務器不是。HTML/PHP編碼,特殊字符在另一個服務器上工作不是另一個

我使用的meta標籤是;

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 

我也試過;

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

正確運行的服務器;

阿帕奇/ 2.4.9(Win64的)PHP/5.5.11

的一個是不正確地格式化,並用黑色菱形內部具有問號替換字符,正在運行;

的Apache/2.4.10(Win32的)的OpenSSL/1.0.1i PHP/5.6.3

我假設它的一個配置的問題,在哪裏?我不知道。也許它是默認行爲的差異。它不能是代碼,因爲它在兩臺服務器上都是相同的。

+0

可能是代碼..因爲有安裝了另一個版本的PHP ... –

+0

檢查系統語言環境。 – iced

+1

如何更改默認編碼在Apache中:http://stackoverflow.com/questions/913869/how-to-change-the-default-encoding-to-utf-8-for-server –

回答

3

HTML元標記對信號編碼只具有次要意義; HTTP內容類型標頭優先(如果存在)。一臺服務器正在設置該標題,另一臺不是(或者正在設置錯誤的)。

無論是在Apache的正確設置你的默認字符集,或明確表示,自己的頭在PHP中輸出:

header('Content-Type: text/html; charset=iso-8859-1'); 
相關問題