jconv

Pure JavaScript Iconv for Japanese encodings. (Shift_JIS, ISO-2022-JP, EUC-JP, UTF-8, UCS-2)

npm install jconv
90 downloads in the last day
166 downloads in the last week
305 downloads in the last month

jconv

Pure JavaScript Iconv for Japanese encodings.

Build Status NPM version

  • This module supported the encodings commonly used in Japanese Language:
    Shift_JIS(CP932), ISO-2022-JP(-1), EUC-JP, UTF8, UNICODE(UCS2) conversion.
  • Pure Javascript, no need to compile.
  • Much faster than node-iconv.

[Japanese 日本語]

Installation

$ npm install jconv

Usage

For example simply convert from EUC-JP to Shift_JIS:

var jconv = require( 'jconv' );

var SJISBuffer = jconv.convert( EUCJPBuffer, 'EUCJP', 'SJIS' );

Also available iconv-lite syntax:

var str = jconv.decode( buffer, fromEncoding );

var buf = jconv.encode( 'string', toEncoding );

API

  • jconv( input, fromEncoding, toEncoding )
  • jconv.convert( input, fromEncoding, toEncoding )

    • input {Buffer} or {String}
    • fromEncoding, toEncoding {String}:
      Shift_JIS(SJIS), ISO-2022-JP(JIS), EUCJP, UTF8, UNICODE(UCS2, UTF16LE) are available.
    • return {Buffer}
  • jconv.decode( inputBuffer, fromEncoding )

    • return {String}
  • jconv.encode( inputString, toEncoding )

    • return {Buffer}
  • jconv.encodingExists( encodingName )

    • return {Boolean}

Performance

Comparison with node-iconv@2.0.7 by converting Japanese text using Benchmark.js.
Environment is Windows7, core i5 2405-S, mem8G, Node 0.10.22. (Please check on your hardware.)
Gray: iconv, Blue: jconv (higher is better)

jconv - encoding speed test chart [latest log]

Encodings

  • Supported: Shift_JIS(CP932), ISO-2022-JP(-1), EUC-JP, UTF8, UNICODE(UCS2).

  • Supported Windows Dependent Characters <-> JIS Conversion.
    (problem details)

  • "JIS X 0208", "JIS X 0212" and "CP932" have the Unicode Mapping Table Differences, so the specific characters ( ~¢£∥ etc... ) cannot be round-trip converted by default.
    This module corrects this difference as much as possible when converting.
    (problem details)

Development

  • Clone Repository

    git clone https://github.com/narirou/jconv.git  
    cd jconv  
    npm install
    
  • Generate Tables

    # generates the unicode mapping table module in "tables" folder.
    node generators/generate-source  
    node generators/generate
    
  • Test

    grunt test
    
  • Speed Test

    # First, minify the script by closure-compiler.
    grunt minify
    
    node test/speed  
    # This results are visualized by chart.js.  
    # Plese open "chart/index.html".
    

Based on

Thank you so much!

Note

Pull requests are welcome.

Todo

  • Streaming API support
  • Support more encodings and languages.
npm loves you