2012-04-17 72 views
0

我有一個顯示單詞「Entrée」的簡單網頁。它看起來很完美,但是當我在Android中使用HTTPClient來顯示應該顯示這個單詞的網頁時,它不知道如何處理「é」。我並不熟悉字符代碼等,但我一直在環顧四周,並看到大多數人推薦UTF-8。我如何確保Android可以讀取這個特殊字符?Android不會顯示PHP頁面中的特殊字符

網頁PHP代碼:

<?php echo "Entrée"; ?>

任何想法?

+0

這與Android有關,而不是php。 – 2012-04-17 21:22:46

+1

@The Man它可能取決於PHP腳本設置的字符編碼(而非)。 – 2012-04-17 21:23:59

+0

也許有些東西在我可以用來代替「é」的php代碼中,這樣它就可以在Android和網頁上顯示出來。 – EGHDK 2012-04-17 21:24:15

回答

2

這很可能是一個字符編碼問題。 PHP腳本可能不會設置任何/正確的字符編碼標題,因此您的瀏覽器和Android會採取任何他們喜歡的方式。

請不這樣做,它的骯髒: 一個 快速黑客避免大多數字符編碼麻煩逃避任何特殊(大部分非ASCII)字符 HTML entites。例如,將會是 &eacute;。如果您只想要 echo "Entrée",那麼只需在您最喜愛的文本編輯器中查找並替換即可。

執行此相反,它使世界變得更美好:

如果您計劃輸出任何東西比靜態的字,說從數據庫或使一些動態文本,你真的應該嘗試做正確的事:讓你的PHP腳本輸出UTF-8併發送正確的Content-Type標題。

我的PHP是非常生疏,但這樣的事情應該工作:

<?php 
header('Content-type: text/plain; charset=UTF-8'); 
echo "Entrée"; 
?> 

您還需要確保文本編輯器或IDE 保存你的PHP文件爲UTF-8(不ANSI ,ASCII,Windows-1252等)或é將全部搞砸,並且沒有標題設置將修復它。大多數編輯會在ANSI中保存,這在編輯器中可能看起來不錯,但在瀏覽器中查看時會炸燬你的臉。

+0

該代碼給了我一個「Entr e」在網頁上的輸出。將嘗試一些調整。編輯:它也在Android應用程序中給出了「Entr e」的輸出。 – EGHDK 2012-04-17 21:39:43

+0

您是否將我們的PHP文件保存爲UTF-8?如果您的PHP腳本正在發送正確的「Content-Type」標題,您可能還想使用Chrome開發人員工具或Firebug進行檢查。 – 2012-04-17 21:42:01

+0

我剛剛嘗試了上面的PHP代碼片段,我跑進記事本,試圖將它保存爲ANSI ...你真的必須強制它作爲UTF-8,然後它工作:)哦,並喜歡像SFTP/SCP的東西(而不是的FTP),如果時間到了,它不會與它認爲文本文件將文件上傳到服務器的內容混淆。 – 2012-04-17 21:52:25