2016-07-27 91 views
0

我想調用存儲過程中的webservice並獲取XML答案。我可以得到XML答案確定,但我想更改responsetext charset utf-8或euc-kr。如何更改responsetext字符集?從SQL存儲過程調用webservice並想知道ResponseText字符集

Ps。我曾經[由sp_OACreate 'ADODB.Stream'],但不能得到responsebody 所以我想字符集的responseText UTF-8或EUC-KR

這是我的存儲過程是什麼樣子:

 DECLARE @Object  INT 
        , @hResult  INT 
        , @source  NVARCHAR(255) 
        , @desc   NVARCHAR(255) 
        , @Method  NVARCHAR(MAX) 
        , @ResponseText  VARCHAR(MAX) 
        , @ResponseBody  varbinary(MAX) 
      DECLARE @ObjectToken INT 

      -- OLE 호출 --XML 
      EXEC @hResult = sp_OACreate 'MSXML2.ServerXMLHTTP', @Object OUT; 

      EXEC @hResult = sp_OAMethod @Object, 'open', NULL, 'GET',@URL,0--'false'                         
      Exec sp_OAMethod @Object ,'setRequestHeader' ,NULL ,'Content-Type' ,'text/xml; charset=utf-8' 
      EXEC @hResult = sp_OAMethod @Object, 'send' 

      EXEC sp_OAGetProperty @Object, 'ResponseText'--,@ResponseBody OUT 


      EXEC sp_OADestroy @Object 
      --SELECT @ResponseBody AS ResponseBody 



      RETURN 
      -- OLE -ADODB 
      EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT 
      EXEC sp_OAMethod @ObjectToken, 'Open' 
      EXEC sp_OASetProperty @ObjectToken, 'Position ', 0     
      EXEC sp_OASetProperty @ObjectToken, 'Type', 1 
      EXEC sp_OASetProperty @ObjectToken, 'Write', NULL,@ResponseBody 
      EXEC sp_OASetProperty @ObjectToken, 'Position ', 0     
      EXEC sp_OASetProperty @ObjectToken, 'Type', 2    
      EXEC sp_OASetProperty @ObjectToken, 'Charset ', 'euc-kr'  

      EXEC sp_OAMethod @ObjectToken, 'ReadText' 

      EXEC sp_OAMethod @ObjectToken, 'Close' 


      --EXEC @hResult = sp_OAMethod @Object, 'ResponseText'--, @ResponseText OUTPUT 


     -- INSERT INTO TempReceiveXml_Body 
     -- exec sp_OAMethod @Object, 'responsebody' 

      EXEC sp_OADestroy @Object 
      EXEC sp_OADestroy @ObjectToken  

回答

0

解決方案

必須響應網頁編碼type = utf-8然後確定。簡單.....解決方案 不需要這句話...

Exec sp_OAMethod @Object ,'setRequestHeader' ,NULL ,'Content-Type' ,'text/xml; charset=utf-8'