|
XML:描述數(shù)據(jù)的標(biāo)準(zhǔn)方法
SOAP:簡單對象訪問協(xié)議,用于信息交換
WSDL:Web服務(wù)描述語言
UDDI:通用描述、發(fā)現(xiàn)與集成,它是一種獨立于平臺的,基于XML語言的用于在互聯(lián)網(wǎng)上描述商務(wù)的協(xié)議。
SOAP默認傳輸?shù)亩际荱TF-8的編碼,這也決定了默認情況下WebService用的也是UTF-8編碼。
現(xiàn)在維護的那個項目是一個php項目,編碼用的全是GBK,在調(diào)用自身提供的WebService方法時,就會遇到編碼問題了。php頁面調(diào)用WebService,而這個WebService又調(diào)用的是另一個調(diào)用COM組件的php類。大概場景就是這樣。
復(fù)制代碼 代碼如下:
php頁面(GBK) -> WebService(UTF-8) -> php類(GBK)
在未遇到問題之前,一切都是風(fēng)平浪靜的,就這樣過了很多年。有一天,公司收購了其它公司,為了整合服務(wù),用戶信息也整合到一起了,原公司所有用戶的帳戶都是由英文字符加數(shù)字組成的,而收購的這個公司沒有做這樣的限定,帳戶有漢字的情況。整合之后,問題出現(xiàn)了,“error in msg parsing: XML error parsing SOAP payload on line 1: Invalid character [detail]”!
php剛接觸不久,不是甚熟,而且NETBeans的調(diào)試灰常不好整。所以就打開VS,引用WebService,開始測試。返回的結(jié)果,找不到用戶,而且是亂碼,OK,看了一下之后,由于WebService的UTF-8編碼傳給php類時,編碼不一致所導(dǎo)致!轉(zhuǎn)換為GBK再傳過去,收到數(shù)據(jù)后,找到用戶,但還是亂碼。將返回過來的數(shù)據(jù)再次轉(zhuǎn)換為UTF-8之后,一切OK!VS下測試一切正常!上測試機!開始測試!打開之后,亂碼!仍然是“error in msg parsing: XML error parsing SOAP payload on line 1: Invalid character [detail]” 主站蜘蛛池模板: 安义县| 兰坪| 中超| 潜山县| 黎川县| 武威市| 儋州市| 应城市| 普定县| 淅川县| 乌拉特后旗| 临朐县| 丹东市| 延边| 长治县| 新龙县| 台北县| 黄山市| 遂川县| 南安市| 桓台县| 苍溪县| 涪陵区| 四川省| 化德县| 北安市| 辛集市| 临潭县| 泸定县| 田阳县| 梧州市| 法库县| 林芝县| 闽清县| 商洛市| 丹东市| 介休市| 望城县| 越西县| 德江县| 大足县|