情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

Node.jsのバッファで文字列を扱う

バッファで文字列を扱うために幾つかの関数が提供されています。

文字コードのチェック

バッファが対応している文字コードに関しては下の記事の「文字コード」の項を参照してください。

文字コードがバッファが標準で対応しているものであるかをチェックするにはBuffer.isEncoding関数を使用します。

var isEncoding = Buffer.isEncoding('xxx');

第1引数に文字コードを指定します。

返り値として文字コードがバッファが標準で対応しているものであるかが真偽値として得られます。

文字列からバッファ

文字列をバッファに変換するにはBuffer.from関数を使用します。

var buf = Buffer.from('xxx', 'utf-8');

Buffer.from関数に関しては下の記事を参照してください。

バッファから文字列

バッファを文字列に変換するにはbuf.toString関数を使用します。

var string = buf.toString('utf-8', 0, buf.length);

第1引数に文字コードを指定します。この引数は指定しなくても構いません。デフォルトはutf-8です。

第2引数に変換の開始インデックスを指定します。この引数は指定しなくても構いません。デフォルトは0です。

第3引数に変換の終了インデックスを指定します。この引数は指定しなくても構いません。デフォルトはバッファの長さです。

返り値として文字列が得られます。

文字列の書き込み

バッファに文字列を書き込むにはbuf.write関数を使用します。

var bytes = buf.write('xxx', 0, 16, 'utf-8');

第1引数に文字列を指定します。

第2引数にオフセットを指定します。この引数は指定しなくても構いません。デフォルトは0です。

第3引数に長さを指定します。この引数は指定しなくても構いません。デフォルトはバッファの長さからオフセットを差し引いたものです。

第4引数に文字コードを指定します。この引数は指定しなくても構いません。デフォルトはutf-8です。

返り値として書き込んだバイト数が得られます。

サンプルコード1

buffer-string.js

console.log(Buffer.isEncoding('ascii'));
console.log(Buffer.isEncoding('utf-8'));
console.log(Buffer.isEncoding('utf16le'));
console.log(Buffer.isEncoding('ucs2'));
console.log(Buffer.isEncoding('base64'));
console.log(Buffer.isEncoding('binary'));
console.log(Buffer.isEncoding('hex'));
console.log(Buffer.isEncoding('fax'));
console.log(Buffer.isEncoding('tax'));
console.log(Buffer.isEncoding('max'));

var buf1 = Buffer.from('foo');

console.log(buf1.toString());
console.log(buf1.toString('utf-8', 1, 2));
console.log(buf1.toString('utf-8', 1, 3));

console.log(buf1.write('barn'));
console.log(buf1.toString());
console.log(buf1.write('bazn', 1, 1));
console.log(buf1.toString());

実行結果

C:\work\node>node buffer-string.js
true
true
true
true
true
true
true
false
false
false
foo
o
oo
3
bar
1
bbr

関連

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-Node.js