NPM酷庫040:jschardet,識別資料編碼

脈衝雲_樑興臣發表於2019-02-16

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

在NPM酷庫039中,我們認識到了iconv-lite庫可以轉換任意的字元編碼到JavaScript內建的Unicode編碼,以便於我們的程式和外部系統友好對接。但是如果我們不知道外部資料的編碼,那麼我們也就無法呼叫iconv-lite來進行轉換。

jschardet

jschardet 可以識別出一個Buffer資料所使用的編碼格式,具體支援的格式包括:

  • Big5, GB2312/GB18030, EUC-TW, HZ-GB-2312, and ISO-2022-CN (Traditional and Simplified Chinese)
  • EUC-JP, SHIFT_JIS, and ISO-2022-JP (Japanese)
  • EUC-KR and ISO-2022-KR (Korean)
  • KOI8-R, MacCyrillic, IBM855, IBM866, ISO-8859-5, and windows-1251 (Russian)
  • ISO-8859-2 and windows-1250 (Hungarian)
  • ISO-8859-5 and windows-1251 (Bulgarian)
  • windows-1252
  • ISO-8859-7 and windows-1253 (Greek)
  • ISO-8859-8 and windows-1255 (Visual and Logical Hebrew)
  • TIS-620 (Thai)
  • UTF-32 BE, LE, 3412-ordered, or 2143-ordered (with a BOM)
  • UTF-16 BE or LE (with a BOM)
  • UTF-8 (with or without a BOM)
  • ASCII

我們能方便地使用 jschardet 庫:

const jschardet = require("jschardet");

// "次常用國字標準字型表" in Big5
jschardet.detect("xa6xb8xb1x60xa5xcexb0xeaxa6x72xbcxd0xb7xc7xa6x72xc5xe9xaaxed");
// { encoding: "Big5", confidence: 0.99 }

參考資料

https://github.com/aadsm/jsch…

相關文章