我做一個AJAX調用,並在AJAX處理程序代碼(PHP側)我必須返回一個包含貨幣符號的字符串。我有€
開始於PHP端,我嘗試使用html_entity_decode()
進行編碼,但當我提醒javascript部分中的響應時,我得到了€
。HTML實體 - 讓€而不是€
我做的價值html_entity_decode()
返回PHP中的AJAX響應之前 -
$currency = "€"; //I am getting this from somewhere so I cannot change it.
echo json_encode(array("message" => htmlentity_decode($currency)));
但還是它顯示€
當我提醒使用JavaScript。
即使當我看着Firebug控制檯,它顯示€
。
我也查了,在非AJAX的情況下,對於一個普通的PHP頁面,如果我回應下面,我得到€
預期 -
$currency = "€";
htmlentity_decode($currency);
所以,我缺少的是在這裏。我需要使用header()設置一些與角色相關的東西嗎?我想這一點 -
header("Content-Type: charset=UTF-8;");
我還檢查Html entities like € is not converted to its symbol in CSV conversion
更新
注:我已嘗試設置$貨幣= 「€」,但設置的 「消息」 屬性迴應null。在Firebug控制檯輸出的響應表明這一點 -
{"message":null}
更新2
我使用jQuery。
我做些什麼反應?
我只是像這樣顯示的確認消息的響應 -
if(confirm(res.message)){alert("confirmed")}. //this renders html entities (€), I want this to render €
我檢查,如果我追加在UI的東西的反應,顯示歐元符號€ - $('.jqModal').append(res.message);
你確定你有'''?您是否檢查過您瀏覽過的瀏覽器頁面的「來源」?注意瀏覽器會騙你並且渲染實體,而不會在html模式下顯示它們的原始內容。 –
@Mark,是的,我從源頭上驗證我得到了一個普通的PHP頁面(非AJAX的情況)。 –
這只是一個想法:你使用jQuery?因爲jQuery有一些方法(例如['.text()'](http://api.jquery.com/text/)將特殊字符轉換爲它們的html實體。「 – Carsten