为了证明其中两个用Flutter编写并在同一设备上运行的应用程序需要交换信息的概念证明,我使用了'dart:io'套接字。
这两个应用程序之一实现了一个SocketServer来接收信息,另一个应用程序初始化了套接字通信。
从连接的角度来看,使用以下代码可以正常工作:
服务器代码:
ServerSocket.bind('127.0.0.1', 8080).then((ServerSocket socketServer) {
socketServer.listen((Socket socket) {
socket.listen((List<int> data){
String result = String.fromCharCodes(data);
print('received: $result');
});
});
}).catchError(print);
客户代码:
Socket.connect('127.0.0.1', 8080).then((socket) {
String data = 'Les élèves regardent par la fenêtre';
socket.write(data);
print("sent: $data");
}).catchError(print);
但是,当我尝试发送包含强调字符的字符串时,我得到以下结果:
sent: Les élèves regardent par la fenêtre
received: Les élèves regardent par la fenêtre
这看起来像是与编码有关的问题,但我还无法解决。
有人会如何进行这项工作吗?
谢谢
最佳答案
写入数据时应尝试使用ut8.encode
,而在另一面读取时应尝试使用utf8.decode
。
关于sockets - Flutter/Dart套接字通信,字符编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60147719/