php过滤一个字符串,以便json_encode不会出错

时间:2016-02-12 18:36:18

标签: php

我从数据库中获取大量数据并将其放入PHP数组中。我正在寻找使用window.history.back();对该数组进行json_encode。

我的问题是,$output = json_encode($out)无法读取数组中的某些内容并且整个内容都失败了。如果我使用json_encode来查看,我可以清楚地看到它失败的地方,因为拧起来的角色总是在黑色钻石print_r($out)内显示为问号。

首先 - 这些角色是什么?

第二 - 是否有一个函数我可以在将它们添加到数组之前传递元素,将它们剥离出来,或用空格替换'它们'?

3 个答案:

答案 0 :(得分:0)

I found the answer to this. Since the data coming FROM the database was stored with the "black diamond" character, I needed to get this out POST grabbing it from the database.

-123456789
[235 50 164 248 255 255 255 255]
-123456789

By passing the result through $x[4] = utf8_encode(odbc_result($query, 'B')); , the string is encoded into UTF-8 and the illegal character is removed.

答案 1 :(得分:-1)

Say echo json_encode($ out); 这将解决您的问题

答案 2 :(得分:-1)

黑钻是浏览器问题。数据库使用普通问号。 看来你从databalse得到了错误的数据。但是如果你的设置不正确,那就非常棘手了。你需要检查一切

  1. 如果您的桌子标有utf8 charset
  2. 如果您的数据确实以utf编码(未标记但确实编码)
  3. 如果您的服务器在Content-type标头中发送正确的字符集。
  4. 查看页面从浏览器菜单中选择不同的字符集也很有用。

    但是首先你必须擦除你尝试的所有随机动作的痕迹,所有这些编码,解码和东西。只是简单而直接的数据库输出。否则你永远不会遇到问题