2012-09-05 16 views
2

可能重複:
Browser displays � instead of ´HTML的PHP​​元字符集UTF-8不工作?

我有點被困在一個PHP文件,幾乎只有在它的HTML。我只使用PHP將聯繫表單中的信息發送給我的郵件地址。

在localhost上開發網站時,一切都很好。上傳到我的服務器後,它會弄亂特殊字符。

我的meta標籤是這樣的:

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

如果有人可以幫我將不勝感激。

+1

您的文件是否編碼爲UTF-8(文件格式,而不是您所顯示的聲明)?編碼將由您的編輯器/ ide完成,使用UTF-8而無BOM標頭。 – martinstoeckli

+1

元標記是隻有當網絡服務器沒有設置適當的標題時纔會應用的回退。如果網絡服務器發送內容類型,meta不起作用,請檢查Response Headers並進行相應的修改。 – Gordon

+0

[在Web應用程序中處理Unicode前後](http://kunststube.net/frontback/) – deceze

回答

13

添加這頭在你的PHP文件,並讓我知道如果它解決與否 -

header('Content-Type: text/html; charset=UTF-8'); 
+0

太棒了!就是這樣,謝謝一堆!你能解釋一下爲什麼需要這樣做嗎? –

+0

@Swapnesh,我有一個問題,我試圖寫'印地語'字符串到MySQL數據庫PHP正在將其轉換爲'????'這就是我在mysql中可以看到的。爲了隔離問題,當我直接把它放在mysql它正確地寫入它。你有什麼想法我可以解決這個問題。 (我的數據庫和表都是UTF8,PHP配置設置爲UTF8) – SmartDev

1

如果你的瀏覽器是專門風格擁有或字符集爲ISO-8859-1另一個字符集,它仍然會顯示在該字符集中。我認爲這是我能檢測到的唯一問題。