2016-02-08 44 views
-2

我有2個類似的PHP頁面,一個正確顯示英國英鎊符號,另一個顯示黑色菱形,在裏面。PHP UK£符號不一致

爲了診斷問題,我將代碼剪下來,它們現在完全相同,但仍顯示不同。怎麼可能??? 這是代碼 `

<head> 
<meta http-equiv="Content-Language" content="en-gb"> 
<meta http-equiv="Content-Type" content="text/html; charset=utf8"> 
</head> 

<body> 
<?php 
echo '<p>'; 

echo "£"."123"; 

?> 
</body> 

</html>` 

雖然它似乎,我可以通過刪除字符集= UTF8解決一個,但如果我從其他的刪除了它前面加上大寫的A與£原代碼工作口音。

這裏發生了什麼?

+0

你的文本編碼是以某種方式搞砸了。你聲明'charset = utf8'。確保你的charset *確實是* UTF-8。檢查你的文本編輯器。 – TRiG

+0

也許實際的文件以不同的編碼保存到磁盤? –

+0

查看來自兩臺服務器的內容類型(和內容編碼)** http **標頭。 – Quentin

回答

1

你已經在你的apache配置中配置了另一個字符集。也許你的php是用ISO-8859-1進行處理的,你正在定義你的HTML UTF-8。這是不一致的。嘗試在你的apache配置中定義UTF-8

看到這個職位:

How to change the default encoding to UTF-8 for Apache?

在httpd.conf中添加(或更改,如果它已經存在):

AddDefaultCharset utf-8

+0

我已將AddDefaultCharset utf-8添加到httpd.conf並重新啓動,但問題仍然存在。 –

1

的問題是發生的原因PHP文件是用不同的編碼保存的。表現良好的那個人編碼爲UTF-8,而問題文件編碼爲Windows-1252。我使用藍魚,它在這裏看起來都很好,但是當我在文件上運行cat命令時,我可以看到奇怪的字符。

感謝您的幫助!