我正在使用aqueduct web api框架来支持我的Flatter应用程序.在我的api后端,我需要连接本地网络套接字服务.我的问题是,我无法返回准确的字符串(在tr中).So, How can I convert string to utf8 in Dart?

Example:

@httpGet
Future<Response> getLogin() async {
  Socket.connect('192.168.1.22’, 1024).then((socket) async {
    socket.listen((data) {
      // Expected return is: 1:_:2:_:175997:_:NİYAZİ TOROS
      print(new String.fromCharCodes(data).trim());
      xResult = new String.fromCharCodes(data).trim();
      print("xResult: $xResult");
    }, onDone: () {
      print("Done");
      socket.destroy();
    });

    socket.write('Q101:_:49785:_:x\r\n');
  });

  return new Response.ok(xResult);
}

退货不是TR-TR语言格式.

返回文本如下所示:

正确答案必须是:

更新:

  1. xResult = new String.fromCharCodes(data).trim();
  2. print(xResult);
  3. responseBody = xResult.transform(utf8.decoder);
  4. print(responseBody);

我可以打印xResult,但在try 转换为UTF8后无法打印responseBody

推荐答案

import 'dart:convert' show utf8;

var encoded = utf8.encode('Lorem ipsum dolor sit amet, consetetur...');
var decoded = utf8.decode(encoded);

另见https://api.dartlang.org/stable/1.24.3/dart-convert/UTF8-constant.html

还有用于流的编码器和解码器

File.openRead().transform(utf8.decoder).

另见https://www.dartlang.org/articles/libraries/converters-and-codecs#converter

Dart相关问答推荐

Dart 3.3接口字段类型升级不起作用

使用arm64v8/DART Docker映像进行编译时不支持DART镜像

dart中如何从xpath获取属性值?

Dart中使用set表达式的switch语句

如何在 Flutter Web 中动态更改 App Title?

在polymer和dart中将内容标签渲染为模板的一部分

需要一个SkDeletable类型的值,但得到一个Null类型的值

如何在没有 Scaffold.drawer 的情况下使用 Drawer?

Flutter DatePicker 没有day选项

不要将 PageView 居中 - Flutter

Flutter插件和Flutter模块之间有什么区别?

在小部件构建期间,如何在Flutter中导航?

如何从类中访问元数据注释?

如何在 Flutter 中为 PopupMenu 添加圆角边框?

如何在 Flutter 中让 Android 状态栏变亮

Flutter:按下按钮时播放声音

如何在 Dart 中使用 char 类型?

VS Code 首选项的位置

有 Javascript 到 Dart 的转换器吗?

包裹构造函数参数的花括号代表什么?