sockets - Flutter/Dart套接字通信,字符编码问题

标签 sockets flutter dart encoding

为了证明其中两个用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/

相关文章:

performance - 在 Flutter 中使用大量图像(缩略图)提高滚动性能

C 应用程序在连接到服务器时卡住

flutter - 如何在 Flutter 中隐藏 float 操作按钮

google-maps - flutter 的谷歌地图没有出现

android - flutter 相机预览不随手机方向旋转

flutter - 我正在尝试制作一个 flutter 的应用程序来控制我的Philips Hue灯,但是hue_dart遇到问题

flutter - 如何创建像 Print 这样的全局函数?

java - 为什么会出现 "java.net.SocketException: Broken pipe"?

sockets - 如果没有 EOF,从 Golang 中的服务器读取 Unix Socket 响应的最佳方法是什么

c++ - Linux套接字文件描述符通常适合散列吗