Php json编码的奇怪问题

Php json编码的奇怪问题,php,json,Php,Json,我已将charset=utf8设置为PDO连接的参数。当我尝试对一个数组进行json\u编码时,由于某种原因,它返回了一堆�͝��字符。但是,如果我事先打印数组,然后对其进行编码,则效果良好。只有在某些结果下才会出现这种情况,而其他结果则很好。这是因为我的数据中有一些字符不是UTF-8之类的吗 注意:我使用的是PHP5.3.28,无法更新到5.4以使用JSON\u UNESCAPED\u UNICODE 编辑:json\u last\u error也不返回任何错误 编辑:这就是我正在做的,返回混

我已将
charset=utf8
设置为PDO连接的参数。当我尝试对一个数组进行
json\u编码时,由于某种原因,它返回了一堆
�͝��字符。但是,如果我事先打印数组,然后对其进行编码,则效果良好。只有在某些结果下才会出现这种情况,而其他结果则很好。这是因为我的数据中有一些字符不是UTF-8之类的吗

注意:我使用的是PHP5.3.28,无法更新到5.4以使用
JSON\u UNESCAPED\u UNICODE

编辑:
json\u last\u error
也不返回任何错误

编辑:这就是我正在做的,返回混乱的文本

$stmt = $db->prepare('SELECT userid, first_name, last_name, email FROM table WHERE event=?');
$stmt->execute(array($_POST['id']));
$responses = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode{$responses);
输出:

�F�z�9��(Ҙ�i-9�o���k�ʚ���J20��b���䄚���U�r��*q��w�*7 C�`|"�q��K�0d��(=�~��U��LS�o{i�%��#S����� ��$0�{�80���B� �̇�5&���Z���x#��   h�͂�� ��C�Oۡ����x@���^�ws�s��� )#)U8KZt����X�%���i�+�{�լ�p�I�Q����j��]�� R��u;?�''yU\����\�D��:!D�y�q��M!�+�~/o�B�U�^h���������*�KP�,���'�ѤR)���@�n�xX������;i�jk ���O����X���Xp�M���;��w�S1VP����V�Z�c#wbC5�cDM�Y9��֓�W^u�xd�\5�E
json_编码然后bin2hex:


��][��Fr�+>~��.�K_�请提供一个完整的、最低限度的工作示例,说明您到底在做什么以及结果到底是什么。这里没有我们真正要讨论的信息。但是:如果您的数据不是UTF-8,
json_encode
将返回
null
。因此,至少这应该是可行的。@deceze好的,我这样做了。结果到底是什么很可能输入到底是什么?@deceze就像我说的,结果只是一堆随机垃圾数据。我把它放在上面。输入只是一个id、名称和电子邮件的数组。这真是太奇怪了,因为
json_encode
应该只输出ASCII字符。你是将结果解释为UTF-16还是什么?你能展示一下吗文本为
bin2hex()