Преобразование строк Dart в байты: подробное руководство

В программировании на Dart существуют различные сценарии, в которых вам может потребоваться преобразовать строки в байты. Независимо от того, работаете ли вы с сетевой связью, шифрованием или обработкой файлов, важно понимать различные методы преобразования строк Dart в байты. В этой статье мы рассмотрим несколько методов с практическими примерами кода, которые помогут вам легко осуществить это преобразование.

Метод 1: использование свойства codeUnits
Самый простой способ преобразовать строку Dart в байты — использовать свойство codeUnits. Это свойство возвращает итерацию кодовых единиц UTF-16, представляющих каждый символ в строке. Вот пример:

String myString = "Hello, World!";
List<int> bytes = myString.codeUnits.toList();

Метод 2: использование функции utf8.encode()
Если вам нужно преобразовать строку в байты в кодировке UTF-8, вы можете использовать функцию utf8.encode()из dart:convertбиблиотека. Этот метод возвращает список байтов, представляющих кодировку входной строки UTF-8.

import 'dart:convert';
String myString = "Hello, World!";
List<int> bytes = utf8.encode(myString);

Метод 3: использование функции latin1.encode()
В некоторых случаях для преобразования байтов может потребоваться кодировка Latin-1. Dart предоставляет функцию latin1.encode(), которая возвращает список байтов, представляющих кодировку Latin-1 входной строки.

import 'dart:convert';
String myString = "Hello, World!";
List<int> bytes = latin1.encode(myString);

Метод 4: использование функции ascii.encode()
Если вы работаете только с символами ASCII, функцию ascii.encode()можно использовать для преобразования строки в ASCII-код. закодированные байты.

import 'dart:convert';
String myString = "Hello, World!";
List<int> bytes = ascii.encode(myString);

Метод 5: использование конструктора Uint8List.fromList()
Dart предоставляет класс Uint8Listиз библиотеки dart:typed_data, который позволяет создавать массив байтов непосредственно из списка целых чисел. Вот пример:

import 'dart:typed_data';
String myString = "Hello, World!";
Uint8List bytes = Uint8List.fromList(myString.codeUnits);

В этой статье мы рассмотрели несколько методов преобразования строк Dart в байты. Используя свойство codeUnits, а также такие функции, как utf8.encode(), latin1.encode()и ascii.encode(), вы можете легко выполнять строковые операции. Преобразования в байты в Dart. Кроме того, мы увидели, как использовать класс Uint8Listдля непосредственного создания байтовых массивов. Имея в своем распоряжении эти методы, вы будете хорошо подготовлены к реализации различных сценариев, связанных с преобразованием строк в байты, в ваших проектах Dart.