簡體   English   中英

如何修復從 websocket 收到的奇怪字符

[英]How can I fix the weird characters I receive from my websocket

我正在嘗試將一個網站連接到我的 java 插件(在我的世界中)並讓他們交流和播放音頻。 當我嘗試發送連接的消息時,我收到奇怪的字符,我該如何解決這個問題?

���}+��X������R�}

Websocket 代碼:

      var ws = new WebSocket("ws://62.210.46.135:40050/");

  var url_string = window.location.href;
  var url = new URL(url_string);
  var c = url.searchParams.get("id");

  ws.onopen = function() {
    ws.send("UUID" + c);
    document.getElementById('IDstatus').innerHTML = "Waiting for response!";
    document.getElementById('IDstatus').style.color = "#2f00ff";
    //document.getElementById('IDstatus').style.color = "#03ad11";
  }

  ws.onmessage = function(e) {
    var data = e.data;
    console.log(e);

    if(data.includes("connected")) {
      document.getElementById('IDstatus').innerHTML = "Connected!";
      document.getElementById('IDstatus').style.color = "#03ad11";
    }
  }

  ws.onerror = function(e) {
    document.getElementById('IDstatus').innerHTML = "ERROR!";
    document.getElementById('IDstatus').style.color = "#ff0022";
  }

收貨人代碼:

        while(!AudioClient.getClient().isClosed()) {    
        try {
            Socket client = AudioClient.getClient();
            client.setKeepAlive(true);
            BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
            String info = null;

            if((info = reader.readLine()) != null){
                System.out.println("Received: " + info + "/n");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

任何 stream 字節都將具有隱式編碼(它可能只是二進制數據或 base64 編碼或 utf8 編碼字符或壓縮圖像等)

  1. 數據接收方使用的解碼字符集應與發送方使用的編碼字符集相同
  2. 發件人應在 stream 中發送可顯示的字符(編碼)以進行可視化表示
  3. Receiver 應在機器上安裝相應的字形以呈現適當的視覺表示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM