我正在执行AJAX调用,在AJAX处理程序代码(PHP端)中,我必须返回一个包含货币符号的字符串。我首先要在PHP端使用€进行编码,但是当我在javascript部分中警告响应时,我会得到€。
在返回PHP中的AJAX响应之前,我做了值的html_entity_decode() -
$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("Content-Type: charset=UTF-8;");
我还检查了 is not converted to its symbol in CSV conversion
更新
注意:我尝试设置$currency =“欧元”,但这会设置响应null的"message“属性。firebug控制台输出中的响应显示-
{"message":null}更新2
我用jQuery。
我对回应做了什么?
我只是在这样的确认信息中显示了回应-
if(confirm(res.message)){alert("confirmed")}. //this renders html entities (€), I want this to render €我检查了一下,如果我在用户界面中附加了响应,欧元符号欧元就会出现- $('.jqModal').append(res.message);。
发布于 2013-02-19 14:42:52
我检查了一下,在PHP端不做任何更改,并在javascript端显式解码HTML实体,在收到响应后,问题就会得到解决。我添加了这个javascript函数html_entity_decode() (phpjs.org/ function /html_entity_decode),并在通知响应之前调用了它,但这也不起作用(然后我在该函数中增加了对欧元的支持),现在它工作了。
https://stackoverflow.com/questions/14461635
复制相似问题