Skip to content

Latest commit

 

History

History
116 lines (75 loc) · 4.17 KB

File metadata and controls

116 lines (75 loc) · 4.17 KB

jconv

Pure JavaScript Iconv for Japanese encodings.

Build Status Npm Modules MIT Licensed

  • Shift_JIS(CP932)、ISO-2022-JP(-1)、EUC-JP、UTF8、UNICODE の相互変換を行うモジュールです。
  • JavaScriptのみで書かれているため、コンパイルは必要ありません。
  • node-iconvよりも高速に変換を行います。

インストール

$ npm install jconv

使い方

EUC-JP から Shift_JIS に変換したい場合は、次のようにします。

var jconv = require( 'jconv' );

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

iconv-lite 形式のAPIも利用可能です。

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

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

API

  • jconv( input, fromEncoding, toEncoding )

  • jconv.convert( input, fromEncoding, toEncoding )

    • input {Buffer} または {String}
    • fromEncoding, toEncoding {String}:
      変換元のエンコードと、変換先のエンコードを指定します。
      Shift_JIS(SJIS,CP932)、ISO-2022-JP(JIS)、EUCJP、UTF8、UNICODE(UCS2,UTF16LE) のいずれかを指定してください。
    • return {Buffer}
  • jconv.decode( inputBuffer, fromEncoding )

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

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

    • return {Boolean}

速度

node-iconv@2.0.7 との変換速度の比較です。夏目漱石 こころ のテキストを、 Benchmark.js を利用して変換速度を計測したものになります。
環境は Windows7, core i5 2405-S, mem8G, Node 0.10.22です。 (利用する環境で計測してみてください。)
グレーがiconv、青色がjconvで、高い方がより高速です。

jconv - encoding speed test chart [latest log]

エンコードについて

  • Shift_JIS(CP932), ISO-2022-JP(-1), EUC-JP, UTF8, UNICODE(UCS2) の相互変換をサポートしています。
    「秀丸エディタ」とほぼ同じ変換内容になります。

  • Windowsの機種依存文字を変換できます。
    (問題詳細)

  • "JIS X 0208"、"JIS X 0212"、"CP932" には、ユニコード変換テーブルに相違点があり、 いくつかの特殊な文字 ( ~¢£∥ など ) では、デフォルトで相互変換を行うことが出来ません。
    このモジュールではテーブルの修正を行うことで相互変換できるようにしていますが、 定義に厳格な変換を行いたい場合は、 node-iconv に libiconv の日本語用修正パッチを当てたモジュールを使用してください。
    (問題詳細)

参考

ありがとうございます。