如何解决如何修复从 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();
}
}
解决方法
任何字节流都将具有隐式编码(它可以只是二进制数据或 base64 编码或 utf8 编码字符或压缩图像等)
- 数据接收方使用的解码字符集应与发送方使用的编码字符集相同
- 发送者应该在流中发送可显示的字符(编码)以进行可视化表示
- 接收器应在机器上安装相应的字形以呈现适当的视觉表示
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。