激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP XML error parsing SOAP payload on line 1

PHP XML error parsing SOAP payload on line 1

2019-11-01 13:50php教程網 PHP教程

PHP中GBK頁面調用WebService的編碼問題:XML error parsing SOAP payload on line 1

WebService,想必大家都比較熟悉,是由“服務提供方”向“服務調用方”提供服務的一種方式。里面有幾項關鍵的技術: 

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]”囧! 

  靜下心來,繼續分析!應該是PHP頁面調用WebService時所導致!VS下面的那個測試頁面是UTF-8的,他們之間沒有問題,但PHP的這個頁面是GBK的。再次修改后,一切又恢復平靜了。 

復制代碼代碼如下:


調用:PHP頁面,參數轉換為UTF-8 -> WebService,轉換為GBK后 -> PHP類 
返回:PHP類 -> WebService,收到后轉化為UTF-8 -> PHP頁面,轉換為GBK 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一区二区精品91 | 免费观看亚洲视频 | 成人毛片在线 | 在线观看国产 | 毛片视频网站 | 中文字幕一区二区三区四区 | 奇米影视四色7777 | 成人羞羞在线观看网站 | 久综合| av免费av| 中日韩乱码一二新区 | 亚洲午夜一区二区三区 | 精品国产91久久久久 | 日日草日日干 | 色播久久 | 欧美不卡| 亚洲va国产va| 国产精品久久久免费观看 | 欧美日本一 | 国产午夜精品理论片a级探花 | 一级片在线观看 | 色视频在线观看 | 久久网页 | 99爱福利视频在线观看 | 日韩视频一区二区三区在线观看 | 国产一区网址 | 欧美久久久久久久久 | 久久精品日产高清版的功能介绍 | 色综合久久久久久久粉嫩 | 久草成人在线观看 | 日韩视频一区二区三区四区 | 91av在线免费观看 | 国产91久久精品 | 国产午夜精品久久久久婷 | 久久久国产精品免费观看 | 色多多视频导航 | 国产99久久精品一区二区 | 成年人在线视频免费 | 最近日本电影hd免费观看 | 黄色成人短视频 | jizzyouxxxx |