|
XML:描述數據的標準方法
SOAP:簡單對象訪問協議,用于信息交換
WSDL:Web服務描述語言
UDDI:通用描述、發現與集成,它是一種獨立于平臺的,基于XML語言的用于在互聯網上描述商務的協議。
SOAP默認傳輸的都是UTF-8的編碼,這也決定了默認情況下WebService用的也是UTF-8編碼。
現在維護的那個項目是一個php項目,編碼用的全是GBK,在調用自身提供的WebService方法時,就會遇到編碼問題了。php頁面調用WebService,而這個WebService又調用的是另一個調用COM組件的php類。大概場景就是這樣。
復制代碼 代碼如下:
php頁面(GBK) -> WebService(UTF-8) -> php類(GBK)
在未遇到問題之前,一切都是風平浪靜的,就這樣過了很多年。有一天,公司收購了其它公司,為了整合服務,用戶信息也整合到一起了,原公司所有用戶的帳戶都是由英文字符加數字組成的,而收購的這個公司沒有做這樣的限定,帳戶有漢字的情況。整合之后,問題出現了,“error in msg parsing: XML error parsing SOAP payload on line 1: Invalid character [detail]”!
php剛接觸不久,不是甚熟,而且NETBeans的調試灰常不好整。所以就打開VS,引用WebService,開始測試。返回的結果,找不到用戶,而且是亂碼,OK,看了一下之后,由于WebService的UTF-8編碼傳給php類時,編碼不一致所導致!轉換為GBK再傳過去,收到數據后,找到用戶,但還是亂碼。將返回過來的數據再次轉換為UTF-8之后,一切OK!VS下測試一切正常!上測試機!開始測試!打開之后,亂碼!仍然是“error in msg parsing: XML error parsing SOAP payload on line 1: Invalid character [detail]” 主站蜘蛛池模板: 罗源县| 扎鲁特旗| 仪征市| 德化县| 寿宁县| 虞城县| 石河子市| 策勒县| 陈巴尔虎旗| 乌兰县| 陇南市| 芒康县| 交城县| 易门县| 滕州市| 石门县| 水城县| 芮城县| 沅江市| 留坝县| 治多县| 留坝县| 田阳县| 兴业县| 金溪县| 建湖县| 维西| 和田县| 昌都县| 泰和县| 阿合奇县| 南溪县| 孙吴县| 来凤县| 高清| 乐安县| 内江市| 黄平县| 石嘴山市| 望都县| 阿拉善盟|