Node.js でサポートされているエンコーディングのリスト
Node.js でサポートされているエンコーディングのリスト
サポートされているエンコーディングのリスト
- UTF-8: 日本語を含む多くの言語で使用される、汎用性の高いエンコーディングです。
- ASCII: 英語のみに対応する、シンプルなエンコーディングです。
- Latin-1: ヨーロッパの言語で使用される、ASCII よりも多くの文字をサポートするエンコーディングです。
- GB2312: 中国語で使用される、漢字を含む多くの文字をサポートするエンコーディングです。
エンコーディングの使用方法
Node.js でエンコーディングを使用するには、Buffer
クラスを使用します。Buffer
クラスは、バイナリデータを操作するためのオブジェクトです。
以下の例では、文字列を UTF-8 エンコーディングでエンコードする方法を示します。
const str = 'Hello, world!';
const buffer = Buffer.from(str, 'utf8');
console.log(buffer);
このコードは、次の出力を生成します。
<Buffer 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21>
上記の例では、Buffer.from()
関数を使用して、文字列を Buffer
オブジェクトに変換しています。utf8
オプションは、文字列を UTF-8 エンコーディングでエンコードすることを指定します。
エンコードされたバッファをデコードするには、toString()
メソッドを使用します。
const buffer = Buffer.from('48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21', 'hex');
const str = buffer.toString('utf8');
console.log(str);
Hello, world!
Node.js でエンコーディングを使用するサンプルコード
この例では、文字列を UTF-8 エンコーディングでエンコードし、output.txt
というファイルに書き込みます。
const fs = require('fs');
const str = 'Hello, world!';
const buffer = Buffer.from(str, 'utf8');
fs.writeFile('output.txt', buffer, (err) => {
if (err) {
console.error(err);
return;
}
console.log('File written successfully.');
});
例 2: ファイルを UTF-8 エンコーディングで読み込んで、コンソールに表示する
この例では、input.txt
というファイルの内容を UTF-8 エンコーディングで読み込み、コンソールに表示します。
const fs = require('fs');
fs.readFile('input.txt', 'utf8', (err, data) => {
if (err) {
console.error(err);
return;
}
console.log(data);
});
この例では、文字列を Latin-1 エンコーディングでエンコードし、Web サーバーで送信します。
const http = require('http');
const str = 'Hello, world!';
const buffer = Buffer.from(str, 'latin1');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end(buffer);
});
server.listen(3000, () => {
console.log('Server listening on port 3000');
});
これらの例は、Node.js でエンコーディングを使用する方法をほんの一例です。エンコーディングは、さまざまな目的に使用できます。詳細については、Node.js のドキュメントを参照してください。
Node.js でエンコーディングを使用するその他の方法
URL エンコーディングとデコーディング
URL エンコーディングは、URL に安全な形式で文字列をエンコードするために使用されます。これは、特殊文字やスペースを含む文字列を Web サーバー間で送信する必要がある場合に役立ちます。
const { URLSearchParams } = require('url');
const str = 'Hello, world!';
const encodedStr = new URLSearchParams().set('data', str).toString();
console.log(encodedStr); // Output: data=Hello%2C%20world%21
const decodedStr = new URLSearchParams(encodedStr).get('data');
console.log(decodedStr); // Output: Hello, world!
Base64 エンコーディングは、バイナリデータを ASCII 文字列に変換するために使用されます。これは、バイナリデータを電子メールや Web ページに埋め込む必要がある場合に役立ちます。
const { TextEncoder, TextDecoder } = require('util');
const data = Buffer.from('Hello, world!');
const encoder = new TextEncoder();
const encodedStr = encoder.encode(data).toString('base64');
console.log(encodedStr); // Output: SGVsbG8sIHdvcmxkIQ==
const decoder = new TextDecoder();
const decodedData = decoder.decode(Buffer.from(encodedStr, 'base64'));
console.log(decodedData); // Output: Buffer(11) [72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108]
カスタムエンコーディング
Node.js では、独自のエンコーディング スキームを作成することもできます。これは、特定のニーズに合わせたエンコーディングが必要な場合に役立ちます。
カスタム エンコーディングを作成するには、Buffer
クラスと組み合わせて使用する独自のエンコードおよびデコード関数を作成する必要があります。
node.js