Module 基礎模組

模組iconv

iconv是內建的一個轉換模組,用於實現各種不同編碼之間的資料轉換

iconv 是呼叫底層系統的編碼功能來實現的,同時也支援一些內建編碼集,例如"utf8", "utf-8", "ucs2", "ucs-2", "utf16", "utf-16" , "ucs2le", "ucs-2le", "utf16le", "utf-16le", "ucs2be", "ucs-2be", "utf16be", "utf-16be", "ucs4", "ucs-4" , "utf32", "utf-32", "ucs4le", "ucs-4le", "utf32le", "utf-32le", "ucs4be", "ucs-4be", "utf32be", "utf-32be"

iconv模組提供了兩個核心方法:

  1. iconv.encode(charset, data):將文字資料轉換為二進位數據
  2. iconv.decode(charset, data):將二進位數據轉換為文字數據

這兩個方法非常易於使用和理解,例如對於一個"utf-8" 編碼的字串"hello",我們可以透過以下程式碼將其轉換為"gbk" 編碼:

1 2 3 4 5
const iconv = require('iconv'); const utf8String = 'hello'; const gbkString = iconv.decode('gbk', iconv.encode('utf-8', utf8String)); console.log(gbkString); // output "你好"

注意:encodedecode方法的第一個參數charset 都是指定要使用的編碼。

靜態函數

encode

用iconv 將文字轉換為二進位數據

1 2
static Buffer iconv.encode(String charset, String data);

呼叫參數:

  • charset: String, 指定字元集
  • data: String, 要轉換的文本

回傳結果:

  • Buffer, 返回解碼的二進位數據

decode

用iconv 將Buffer內容轉換為文字

1 2
static String iconv.decode(String charset, Buffer data);

呼叫參數:

  • charset: String, 指定字元集
  • data:Buffer, 要轉換的二進位數據

回傳結果:

  • String, 返回編碼的字串

isEncoding

檢測字符集是否被支援

1
static Boolean iconv.isEncoding(String charset);

呼叫參數:

  • charset: String, 指定字元集

回傳結果:

  • Boolean, 傳回是否支援該字元集