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:
xResult = new String.fromCharCodes(data).trim();
print(xResult);
responseBody = xResult.transform(utf8.decoder);
print(responseBody);
Je peux imprimer le xResult
mais je ne peux pas imprimer le responseBody
après avoir essayé de convertir en UTF8
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
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.