问题是这样的,我现在的开发环境.是zend framwork.DB是postgre,现在的问题是什么server端去查数据库.给出来一个结果集,前端通过webservices把数据打出来,但是在测试前端的时候,一直报这个错误.Uncaught SoapFault exception: [env:Receiver] SOAP-ERROR: Encoding: string '\xe6...' is not a valid utf-8 string in D:\web\ezwebservice\product\test.php:20
我查到的问题是这样的,把数据从DB里select 出来之后,送到方法的返回值上,就会出现这个问题,直接打上字符之后,就不会报这个错,wsdl我已经检查了.没错.message ,binding,type 都对,没有问题.
s端的,c端都必须是uft-8的.但是s端的数据从DB里取出来之后再经过iconv("GB2312","UTF-8",$result[24])转换之后, 这个错误.Uncaught SoapFault exception: [env:Receiver] SOAP-ERROR: Encoding: string '\xe6...' is not a valid utf-8 string in D:\web\ezwebservice\product\test.php:20 就消失了.不过值并没有出在c端出现.大家在以前的开发php项目的时候,遇到这个问题没有.这个问题,已经折磨我好几天了,有会的帮个忙呗...
我查到的问题是这样的,把数据从DB里select 出来之后,送到方法的返回值上,就会出现这个问题,直接打上字符之后,就不会报这个错,wsdl我已经检查了.没错.message ,binding,type 都对,没有问题.
s端的,c端都必须是uft-8的.但是s端的数据从DB里取出来之后再经过iconv("GB2312","UTF-8",$result[24])转换之后, 这个错误.Uncaught SoapFault exception: [env:Receiver] SOAP-ERROR: Encoding: string '\xe6...' is not a valid utf-8 string in D:\web\ezwebservice\product\test.php:20 就消失了.不过值并没有出在c端出现.大家在以前的开发php项目的时候,遇到这个问题没有.这个问题,已经折磨我好几天了,有会的帮个忙呗...
2.把gb2312改成gbk
---------------------------------
iconv可以的。db输入我也看了,也没问题。1,用mb_convert转.
2.把gb2312改成gbk
----------------------------
呵呵,必须是utf-8的
gb2312包含的汉字集是有限的.内码映射表中没有这些值.
2.把gb2312改成gbk
顶