今天在做项目时发现了这么一个问题,当我们用php自带的函数把一个数组输出成json格式以便js调用,总是很方便的,然而,这个功能并不是那么好用的。
当我们转换一个内容中含%的json数据时,问题就出现了。今天我在测试编辑器一些新特性时,就发现当内容中含百分号时前段js就会报错,于是我就开始考虑看看如何调试。
首先我们很容易就可以肯定是%号的问题,只要把它去掉就解决了,但是我们需要使用这个符号。那么我们需要看看问题出在哪。其实这个是不难的,很容易发现就是json解析的时候出错了,那么这个json是php生成的,为什么还会出问题呢?
百度上查了下,%的确是会引起这个问题,碰到这个问题,其实是浏览器吧%当成一种编码的方式了,然而后面的并不是那种编码的内容。那么既然这样,我们索性就就把它编码下吧,在转json之前我们用字符串函数替换一下,把%替换成%25,再刷新,问题立刻就解决了。没错,就是它的锅,不过我们已经把它解决好了,不过这给我们以一个启示——下次写这种转换之前,我们根据实际情况考虑是否需要做这个替换