Bladeren bron

add to local

stanley-king 4 jaren geleden
bovenliggende
commit
5645c50b07
3 gewijzigde bestanden met toevoegingen van 13 en 3 verwijderingen
  1. 4 0
      helper/rbridge/wsd/Bridge.php
  2. 3 2
      test/TestRBridge.php
  3. 6 1
      wsd_bridge.php

+ 4 - 0
helper/rbridge/wsd/Bridge.php

@@ -104,6 +104,10 @@ class Bridge implements IBridge
             }
 
             $header = ['Content-Type: application/json'];
+
+            $encode = mb_detect_encoding($body, ['GB2312','GBK','UTF-8']);
+            $body = mb_convert_encoding($body,$encode, 'GBK');
+
             $resp = http_post_data(config::BridgeNotifyURL, $body, $header);
 
             if ($resp === false) {

File diff suppressed because it is too large
+ 3 - 2
test/TestRBridge.php


+ 6 - 1
wsd_bridge.php

@@ -45,6 +45,10 @@ class WSDBridge
                 if(!empty($body)) {
                     Log::record("req:{$body}",Log::DEBUG);
                     $response = $this->relay_request($body);
+
+                    $encode = mb_detect_encoding($response, ['GB2312','GBK','UTF-8']);
+                    $response = mb_convert_encoding($response,$encode, 'GBK');
+
                     socket_write($client,$response);
                     Log::record("resp:{$response}",Log::DEBUG);
                 }
@@ -106,8 +110,9 @@ class WSDBridge
             $content .= $buf;
         }
         Log::record("buf={$buf}",Log::DEBUG);
+        $content = mb_convert_encoding($content,'GBK', 'UTF-8');
+        Log::record("content={$content}",Log::DEBUG);
 
-        $content = iconv('GBK', 'UTF-8', $content);
         if ($this->isbody($content)) {
             return $content;
         }