亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP json_encode無法部分處理數組

PHP json_encode無法部分處理數組

PHP
森林海 2019-10-21 15:14:41
我有一個PHP代碼,需要將數據庫表數據編碼為json。所以我使用了json_encode()。我使用此處給出的表格-http: //www.geekality.net/2011/08/21/country-names-continent-names-and-iso-3166-codes-for-mysql/對于不同的輸入,此代碼的行為似乎有所不同。查詢- $query = "SELECT * FROM countries ";不返回任何json值。查詢- $query = "SELECT * FROM countries where continent_code='AS'";正確返回json值。但是,$query = "SELECT * FROM countries where continent_code='EU'";也不會返回任何內容。同樣,“ NA”,“ AF”無效,而其他人則完美。我對PHP的json_encode的這種行為感到奇怪。這是我的代碼。<?php$con=mysqli_connect('localhost','xxxx','xxxxx','joomla30');// Check connectionif (mysqli_connect_errno())  {  echo "Failed to connect to MySQL: " . mysqli_connect_error();  }$result = mysqli_query($con,"SELECT * FROM countries where continent_code='EU'") or die (mysqli_error($con));while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {      $orders[] = array(          'CountryCode' => $row['code'],          'CountryName' => $row['name']          );  }//print_r($orders);echo json_encode($orders);mysqli_close($con);?>直到json_encode的上一行為止,數據都會被攜帶。所以我認為它的json編碼問題。我嘗試使用來了解它print_r($orders);。我從中得到以下輸出。如果我嘗試使用“ EU”,則會得到該數組。Array ( [0] => Array ( [CountryCode] => AD [CountryName] => Andorra ) [1] => Array ( [CountryCode] => AL [CountryName] => Albania ) [2] => Array ( [CountryCode] => AT [CountryName] => Austria ) [3] => Array ( [CountryCode] => AX [CountryName] => ?land Islands )...如果我嘗試使用“ AS”,則會得到該數組。Array ( [0] => Array ( [CountryCode] => AE [CountryName] => United Arab Emirates ) [1] => Array ( [CountryCode] => AF [CountryName] => Afghanistan) [2] => Array ( [CountryCode] => AM [CountryName] => Armenia) [3] => Array ( [CountryCode] => AZ [CountryName] => Azerbaijan)...這兩個數組看起來都差不多……但是Json_encode僅在'AS'上有效,而在'EU'上無效。有誰知道如何解決這個問題?如果是這樣,請告訴我。
查看完整描述

2 回答

?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

您應該確保Web應用程序的每個組件都使用UTF-8。另一個問題的答案將告訴您如何執行此操作。如果您從RFC4627中閱讀以下內容:


編碼:JSON文本應以Unicode編碼。默認編碼為UTF-8。


json_encode函數要求所有傳入數據均采用UTF-8編碼。這就是為什么諸如這樣的字符串?land Islands可能會導致您出現問題的原因。


查看完整回答
反對 回復 2019-10-21
  • 2 回答
  • 0 關注
  • 1029 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號