【问题标题】:Unable to get hebrew results using JsonP无法使用 JsonP 获得希伯来语结果
【发布时间】:2012-06-09 19:04:22
【问题描述】:

我正在向托管在我拥有的网站上的 php 脚本发出 JsonP 请求。 php 脚本从 DB 中获取结果并以 Json 形式返回。

问题是数据库包含希伯来字符,我将它们作为 '??????'在响应中。

知道如何解决这个问题吗?

这里是js代码:

$.getJSON("http://flyfish.co.il/appdiet?callback=?",function(data){
$('p').text(data[0].food_name);
});

和php代码:

 <?php
header('Content-type: text/html; charset=UTF-8');
require_once 'config.php';

$mysqli = new mysqli(HOST,USERNAME,PASSWORD,DB_NAME);

$query = "SELECT * from mytable";

if ($result = $mysqli->query($query)) 
{
$data = array();
while ($row = $result->fetch_assoc()) { 
    $data[] = $row;     
}
echo $_GET['callback'].'('.json_encode($data).')';
}  
else {
echo $_GET['callback'].'('.$mysqli->error.')';
} 
$mysqli->close();

【问题讨论】:

  • header('Content-type: text/html; charset=UTF-8');?嗯? 文本/html?!
  • 这不是 JSON。它是 JSON-P,所以正确的 MIME 类型是 application/javascript
  • 嗨,我改变了它,但它没有成功:(,也尝试了 application/json 没有成功。

标签: php mysql jquery jsonp


【解决方案1】:

尝试在select 语句之前添加set names 'utf8';

【讨论】:

  • 试过了,现在我得到了:\u05d0\u05e8\u05d8\u05d9\u05e9\u05d5\u05e7
  • 我读过希伯来语,那不是希伯来语!我认为甚至没有这么长的德语单词:)
  • 当我将 JSON 转换为文本时,我得到 " ארטישוק" ……这对我来说似乎并不长。
  • “当我将 JSON 转换为文本时”是什么意思?你如何转换它?
猜你喜欢
  • 2013-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多