我有一個(gè)PHP代碼,需要將數(shù)據(jù)庫表數(shù)據(jù)編碼為json。所以我使用了json_encode()。我使用此處給出的表格-http: //www.geekality.net/2011/08/21/country-names-continent-names-and-iso-3166-codes-for-mysql/對(duì)于不同的輸入,此代碼的行為似乎有所不同。查詢- $query = "SELECT * FROM countries ";不返回任何json值。查詢- $query = "SELECT * FROM countries where continent_code='AS'";正確返回json值。但是,$query = "SELECT * FROM countries where continent_code='EU'";也不會(huì)返回任何內(nèi)容。同樣,“ NA”,“ AF”無效,而其他人則完美。我對(duì)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);?>直到j(luò)son_encode的上一行為止,數(shù)據(jù)都會(huì)被攜帶。所以我認(rèn)為它的json編碼問題。我嘗試使用來了解它print_r($orders);。我從中得到以下輸出。如果我嘗試使用“ EU”,則會(huì)得到該數(shù)組。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”,則會(huì)得到該數(shù)組。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)...這兩個(gè)數(shù)組看起來都差不多……但是Json_encode僅在'AS'上有效,而在'EU'上無效。有誰知道如何解決這個(gè)問題?如果是這樣,請(qǐng)告訴我。
2 回答

滄海一幻覺
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊
您應(yīng)該確保Web應(yīng)用程序的每個(gè)組件都使用UTF-8。另一個(gè)問題的答案將告訴您如何執(zhí)行此操作。如果您從RFC4627中閱讀以下內(nèi)容:
編碼:JSON文本應(yīng)以Unicode編碼。默認(rèn)編碼為UTF-8。
json_encode函數(shù)要求所有傳入數(shù)據(jù)均采用UTF-8編碼。這就是為什么諸如這樣的字符串?land Islands可能會(huì)導(dǎo)致您出現(xiàn)問題的原因。
- 2 回答
- 0 關(guān)注
- 1026 瀏覽
添加回答
舉報(bào)
0/150
提交
取消