Awesome Open Source
Awesome Open Source
Sponsorship

jconv

Pure JavaScript Iconv for Japanese encodings.

Build Status Npm Modules MIT Licensed

  • This module supports the encodings commonly used in the 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 [email protected] 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.
  • Cleanup the code and more speed.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (66,074
encoding (94
japanese (60

Find Open Source By Browsing 7,000 Topics Across 59 Categories