jconv
v0.1.5
Published
Pure JavaScript Iconv for Japanese encodings. (Shift_JIS, ISO-2022-JP, EUC-JP, UTF-8, UCS-2)
Downloads
53,441
Readme
jconv
Pure JavaScript Iconv for Japanese encodings.
- 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.
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)
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
- iconv-lite by ashtuchkin.
- Encoding.js by polygonplanet.
- iconv-js by Hikaru02.
- node-iconv by bnoordhuis.
- libiconv-1.9.1-ja-patch Description by 森山 将之.
Thank you so much!
Note
Pull requests are welcome.
Todo
- Streaming API support
- Support more encodings and languages.