buf.toString([encoding[, start[, end]]])
Добавлено в: v0.1.90
encoding
<строка> Кодировка символов для использования.- По умолчанию:
'utf8'
. start
<целое число> Смещение в байтах для начала декодирования.- По умолчанию:
0
. end
<целое число> Смещение байта для остановки декодирования (не включено).- По умолчанию:
buf.length
. - Возвращает: <строка>
Декодируется buf
в строку в соответствии с указанной кодировкой символов в encoding
. start
и end
может быть передан для декодирования только подмножества buf
.
Если encoding
есть 'utf8'
и последовательность байтов во входных данных недопустима UTF-8, то каждый недопустимый байт заменяется символом замены U+FFFD
.
Максимальная длина экземпляра строки (в кодовых единицах UTF-16) доступна как buffer.constants.MAX_STRING_LENGTH
.
import { Buffer } from 'buffer';
const buf1 = Buffer.allocUnsafe(26);
for (let i = 0; i < 26; i++) {
// 97 is the decimal ASCII value for 'a'.
buf1[i] = i + 97;
}
console.log(buf1.toString('utf8'));
// Prints: abcdefghijklmnopqrstuvwxyz
console.log(buf1.toString('utf8', 0, 5));
// Prints: abcde
const buf2 = Buffer.from('tést');
console.log(buf2.toString('hex'));
// Prints: 74c3a97374
console.log(buf2.toString('utf8', 0, 3));
// Prints: té
console.log(buf2.toString(undefined, 0, 3));
// Prints: té
const { Buffer } = require('buffer');
const buf1 = Buffer.allocUnsafe(26);
for (let i = 0; i < 26; i++) {
// 97 is the decimal ASCII value for 'a'.
buf1[i] = i + 97;
}
console.log(buf1.toString('utf8'));
// Prints: abcdefghijklmnopqrstuvwxyz
console.log(buf1.toString('utf8', 0, 5));
// Prints: abcde
const buf2 = Buffer.from('tést');
console.log(buf2.toString('hex'));
// Prints: 74c3a97374
console.log(buf2.toString('utf8', 0, 3));
// Prints: té
console.log(buf2.toString(undefined, 0, 3));
// Prints: té
Метод Buffer.toString() используется для декодирования данных буфера в строку в соответствии с указанным типом кодирования. Смещение начала и конца используется для декодирования только определенного подмножества буфера. Если последовательность байтов в данных буфера недопустима в соответствии с предоставленной кодировкой, то она заменяется символом замены по умолчанию, т. е. U+FFFD.
Синтаксис:
Buffer.toString( encoding, start, end )
Параметры: Этот метод принимает два параметра, как указано выше и описано ниже:
- encoding (кодирование): Формат, в котором должны быть закодированы символы буферных данных. Его значение по умолчанию — ‘utf8’.
- start (начало): Начальный индекс буферных данных, с которых должна начинаться кодировка. Его значение по умолчанию — 0.
- end (конец): Последний индекс буферных данных, до которого необходимо выполнить кодирование. Его значение по умолчанию — Buffer.length.
Возвращаемое Значение: Он возвращает декодированную строку из буфера в строку в соответствии с указанной кодировкой символов.
Пример 1:
// Node.js program to demonstrate the
// Buffer.toString() Method
// Creating a buffer
var buffer = new Buffer.alloc(5);
// Loop to add value to the buffer
for (var i = 0; i < 5; i++) {
buffer[i] = i + 97;
}
// Display the value of buffer
// in string format
console.log(buffer.toString());
console.log(buffer.toString('utf-8', 1, 4));
console.log(buffer.toString('hex'));
Выход:
abcde
bcd
6162636465
Пояснение: В приведенном выше примере мы объявили переменный буфер размером 5 и заполнили его значением ASCII от » a » до «e». Затем мы использовали метод toString() без каких-либо параметров, который возвращает строку со стилем кодировки по умолчанию, то есть ‘UTF-8’ полного буфера. В следующей строке он возвращает строку со стилем кодировки ‘UTF-8’ с индексом от 1 до 3 (здесь 4 исключено). Наконец, он возвращает строковое представление со стилем кодировки » ШЕСТНАДЦАТЕРИЧНЫЙ’.
Пример 2:
// Node.js program to demonstrate the
// Buffer.toString() Method
// Creating a buffer
var buffer = new Buffer.alloc(5);
// Loop to add value to the buffer
for (var i = 0; i < 5; i++) {
buffer[i] = i + 97;
}
// Display the value of buffer
// in string format
console.log(buffer.toString(undefined));
Выход:
abcde
Примечание: Приведенная выше программа будет скомпилирована и запущена с помощью команды node index.js
Ссылка: https://nodejs.org/api/buffer.html#buffer_buf_tostring_encoding_start_end