php json_encode部分不在数组上工作

php json_encode部分不在数组上工作,php,json,Php,Json,我有一个PHP代码,需要将DB表数据编码为json。 所以我使用了json_encode() 我使用这里给出的表格- 对于不同的输入,此代码的行为似乎有所不同 查询-$query=“选择*来自国家”不返回任何json值。 查询-$query=“SELECT*FROM countries who containment\u code='AS'”正确返回json值 鉴于,$query=“SELECT*来自欧洲大陆的国家”\u code='EU'也不返回任何内容 类似地,“NA”、“AF”不起作用,而

我有一个PHP代码,需要将DB表数据编码为json。 所以我使用了json_encode()

我使用这里给出的表格-

对于不同的输入,此代码的行为似乎有所不同

查询-
$query=“选择*来自国家”不返回任何json值。

查询-
$query=“SELECT*FROM countries who containment\u code='AS'”正确返回json值

鉴于,
$query=“SELECT*来自欧洲大陆的国家”\u code='EU'也不返回任何内容

类似地,“NA”、“AF”不起作用,而其他的则工作得很完美

我对PHP的json_编码的这种行为感到奇怪

这是我的密码

<?php
$con=mysqli_connect('localhost','xxxx','xxxxx','joomla30');
// Check connection
if (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);
?>
如果我尝试“AS”,我得到这个数组

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 )...
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”上工作

有人知道如何解决这个问题吗?
如果是这样,请告诉我..

您应该确保web应用程序的每个组件都使用UTF-8。另一个问题会告诉你怎么做。如果您来自RFC4627:

编码:JSON文本应采用Unicode编码。默认编码是UTF-8


json_encode函数要求所有传入数据都进行UTF-8编码。这就是为什么像
Åland Islands
这样的字符串可能会给您带来问题。

这里只是一个随机猜测:
json_encode
要求您输入的所有数据都是UTF-8编码的,否则它将失败。在这些失败的国家,您可能有包含非ASCII字符的数据。纯ASCII恰好与需要特别注意的UTF-8非ASCII字符兼容。有关如何从数据库中获取UTF-8编码数据的信息,请参阅(使用)。

我想,问题在于“奥兰群岛”,因为json_encode与“奥兰群岛”有问题,因为“奥兰群岛”是一个奇怪的unicode。尝试将mysql\u连接设置为UTF-8谢谢您在2分钟内的快速响应。。我添加了
mysqli\u set\u字符集($con,'utf8')它工作得很好…谢谢,我刚刚添加了以下代码
$db->set_字符集(“utf8”)在我准备好的声明中,并完美地工作