NPM酷庫039:iconv-lite,字符串編碼轉換

圖片描述

NPM酷庫,天天兩分鐘,瞭解一個流行NPM庫。·git

咱們的程序與外部系統對接時,輸入輸出的數據常常須要作編碼轉換,由於JavaScript採用的編碼是Unicode,而外部系統的數據編碼多是多種多樣的,好比Windows上的漢字編碼使用的是GBK。github

準確地說,JavaScript的編碼採用的是UCS-2,這是一個很古老的(1990年誕生)有些過期的編碼。可是由於UTF-16編碼徹底兼容UCS-2,因此咱們能夠「簡單」認爲JavaScript是Unicode系的。

好比,咱們須要使用Node.js作一個爬蟲程序,而目標網站頁面編碼是GBK(那必定是一個古老的站點),咱們抓取過來的漢字內容直接輸出會顯示出亂碼,爲了可以正常識別這些漢字內容,咱們須要將GBK編碼Buffer轉換爲JavaScript的Unicode。網站

iconv-lite

iconv 是Linux系統上很是著名的庫,它能夠將數據在任何編碼間互轉。今天咱們要了解的iconv-lite只是一個簡單版本,但已經足夠咱們使用。ui

const iconv = require('iconv-lite');

// 將Unicode字符串轉換爲GBK編碼的Buffer
let buf = iconv.encode("漢字", 'GBK');

// 這樣會輸出亂碼
console.log(buf.toString());

// 將GBK編碼的Buffer數據轉換爲Unicode字符串
let str = iconv.decode(buf, 'GBK');

// 正常輸出 「漢字」
console.log(str);

參考資料

https://github.com/ashtuchkin...編碼

相關文章
相關標籤/搜索