web-dev-qa-db-fra.com

Comment puis-je convertir une chaîne en utf8 dans Dart?

J'utilise le cadre de l'API Web Aqueduct pour prendre en charge mon application Flutter. Dans mon backend api, je dois connecter des services de socket de réseau local. Mon problème est que je ne peux pas retourner la chaîne exacte (en tr). S o, comment puis-je convertir une chaîne en utf8 dans Dart?

Exemple:

@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);
}

Le retour n'est pas au format de langue TR-tr.

Le texte de retour ressemble à: 1: : 2: : 175997: _: NÝYAZÝ TOROS

Le correct doit être: 1: : 2: : 175997: _: NİYAZİ TOROS

METTRE À JOUR:

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

Je peux imprimer le xResult mais je ne peux pas imprimer le responseBody après avoir essayé de convertir en UTF8

7
user9239214
import 'Dart:convert' show utf8;

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

Voir aussi https://api.dartlang.org/stable/1.24.3/Dart-convert/UTF8-constant.html

Il existe également un encodeur et un décodeur à utiliser avec les flux

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

Voir aussi https://www.dartlang.org/articles/libraries/converters-and-codecs#converter

13
Günter Zöchbauer
utf8.decode(stringData.runes.toList()),

Cela pourrait être utilisé pour obtenir le flottement de l'UTF-8. ici, la chaîne stringData contiendra les données nécessaires au contenu UTF-8.

1
Jithin U. Ahmed