PHP输出JSON Web Service charset UTF-8错误
我正在通过
PHP托管JSON输出的Web服务.
我在DB中有希伯来语数据集,我将此作为输出发布到Web服务. 当我最初发布数据时,它输出结果如下: JSON: { "tasklist": [ { "customerID": "9936","name": "×?ר ×ר×?×” ×?×–×?× ×?ב×?× ×?×? ב×¢"×?","cargo":"×ברר","destination":"×?×?ר","quantity":"1.000000","startdate":"03/01/201300: 00: 00" } ] } 但是这个“×הרר“可以被Android / Iphone解析器读取并将其转换为原始的希伯来语.但我在“名字”中遇到错误:“×?ר×ר×?×”×?× – ×?××?×’×?××?×?×’×¢“×?”,其中“位于字符串之间,因此JSON无效并显示错误! 为了解决这个问题我使用UTF-8将“×גרר”转换为希伯来语“????”.但在这种情况下,问题仍然存在: PHP:
JSON: { "tasklist": [ { "customerID": "9936","name": "?? ???? ???? ?????? ??"?","cargo":"????","destination":"???","startdate":"03/01/201300: 00: 00" } ] } 但问题仍然存在: 在某些情况下,由于使用UTF-8,我得到了这个 "name":"?????? ??? ?????-????? ??" >我如何克服这个问题? 注意:数据不能在数据库中更改解决方案应该在输出到JSON时. DB中存储的数据如何显示如下:
我的PHP脚本输出JSON: <?php //My DB connection and Query comes here $jsontext = '{"tasklist":['; while($row = mysql_fetch_array($queryExe)){ $jsontext .= '{"customerID":"'.$row['AUTO_ID'].'",'; $jsontext .='"name":"'.$row['Customer_Name'].'",'; $jsontext .='"cargo":"'.$row['Type_of_Cargo'].'",'; $jsontext .='"destination":"'.$row['Destination'].'",'; $jsontext .='"quantity":"'.$row['Quantity'].'",'; $jsontext .='"startdate":"'.$row['startdate'].'"},'; } $jsontext = substr_replace($jsontext,'',-1); // to get rid of extra comma $jsontext .= "]}"; header('Content-type: text/html; charset=UTF-8'); //Output the final JSON echo $jsontext; ?> 提前谢谢你的帮助! 问题清楚了吗?了解我的问题.
如果你的db-field是utf8,你应该坚持:
mysql_query("SET NAMES 'utf8'"); 在插入数据之前,您应该始终执行’SET NAMES …’. 那么你的查询: mysql_query($your_query); $array = array("tasklist"=>array()); while($row = mysql_fetch_array($queryExe)){ $a = array(); $a["customerID"] = $row['AUTO_ID']; $a["name"] = $row['Customer_Name']; $a["cargo"] = $row['Type_of_Cargo']; $a["destination"] = $row['Destination']; $a["quantity"] = $row['Quantity']; $a["startdate"] = $row['startdate']; $array["tasklist"][] = $a; } header("Content-type: application/json; charset=utf-8"); echo json_encode($array); exit(); 当服务器默认字符集例如是iso时,我已经获得了这些还不够的经验.在这种情况下,我需要在我的.htaccess中执行以下操作: AddDefaultCharset utf-8 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |