记录一次TP6在ajax提交报错时json转换的异常
真实异常不是Malformed UTF-8 characters...,而是代码的一个其他错误。而TP框架返回真实异常时对异常时进行了json_encode,结果转码时又抛出转码的异常。
TP代码如下:(think\response\Json),false == $data是再次抛出异常
json_encode时返回false,根据经验肯定是有非UTF8字符集造成的,然后对data遍历并json_encode调试,发现数据中有Windows中的环境变量项,也就是Path=...,乱码就出现在这里中文路径上(安装微信开发者工具时自动添加的Path,这么大个公司了,做个程序路径这么草率,用中文路径就算了,还加到Path里)。
卸载微信开发者工具,重新自己制定英文路径,重启系统(重启PHP没起作用),终于能看到真实异常了