昨天接微信支付的时候犯了一个最基本的错误,特此今天记录 以反省自己
当时我是在浏览器输出xml字符串来调试 却发现输出来的只是一串数字 于是反复检查代码
后来想起php输出“<>”尖括号等字符 在浏览器显示不了 于是加了一个函数htmlspecialchars 浏览器显示字符
并且 字符串能解析 数据也是对的 但是还是报xml解析错误
当时很困惑 于是百度 有人说是postcurl的时候 如果里面有中文字符串 发送到微信服务器会出现乱码 接着 在请求头设置字符集
还是没效果
突然想着 有可能只是浏览器不能显示字符 可是服务器上会显示 于是在服务器上打log 显示xml字符串
难怪会返回xml格式错误 经过一番检查 就是因为我加的htmlspecialchars 这个函数
去掉 就返回成功了
总结:看数据还是在服务器上看,浏览器有时候会不能显示特殊字符串 导致迷惑自己 浪费时间