模組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
模組提供了兩個核心方法:
iconv.encode(charset, data)
:將文字資料轉換為二進位數據iconv.decode(charset, data)
:將二進位數據轉換為文字數據
這兩個方法非常易於使用和理解,例如對於一個"utf-8" 編碼的字串"hello",我們可以透過以下程式碼將其轉換為"gbk" 編碼:
1
2
3
4
5const iconv = require('iconv');
const utf8String = 'hello';
const gbkString = iconv.decode('gbk', iconv.encode('utf-8', utf8String));
console.log(gbkString); // output "你好"
注意:encode
和decode
方法的第一個參數charset 都是指定要使用的編碼。
靜態函數
encode
用iconv 將文字轉換為二進位數據
1
2static Buffer iconv.encode(String charset,
String data);
呼叫參數:
- charset: String, 指定字元集
- data: String, 要轉換的文本
回傳結果:
- Buffer, 返回解碼的二進位數據
decode
用iconv 將Buffer內容轉換為文字
1
2static String iconv.decode(String charset,
Buffer data);
呼叫參數:
- charset: String, 指定字元集
- data:Buffer, 要轉換的二進位數據
回傳結果:
- String, 返回編碼的字串
isEncoding
檢測字符集是否被支援
1static Boolean iconv.isEncoding(String charset);
呼叫參數:
- charset: String, 指定字元集
回傳結果:
- Boolean, 傳回是否支援該字元集