[Pkg-javascript-commits] [node-iconv-lite] 31/83: Version 0.2.0: Automatic generation of single byte encodings.
matthew pideil
mpideil-guest at moszumanska.debian.org
Tue Apr 1 19:56:48 UTC 2014
This is an automated email from the git hooks/post-receive script.
mpideil-guest pushed a commit to branch master
in repository node-iconv-lite.
commit e1a3083cf6c254efb73e6d5ebd718a2717668134
Author: Alexander Shtuchkin <ashtuchkin at gmail.com>
Date: Mon May 7 21:34:55 2012 +0400
Version 0.2.0: Automatic generation of single byte encodings.
---
README.md | 44 +++---
encodings/arabic.js | 20 ---
encodings/baltic.js | 20 ---
encodings/cyrillic.js | 26 ---
encodings/greek.js | 27 ----
encodings/hebrew.js | 21 ---
encodings/singlebyte.js | 324 ++++++++++++++++++++++++++++++++++++++
encodings/turkish.js | 21 ---
encodings/vietnamese.js | 12 --
encodings/western.js | 44 ------
generation/generate-encoding.js | 241 ----------------------------
generation/generate-singlebyte.js | 134 ++++++++++++++++
index.js | 4 -
package.json | 2 +-
test/turkish-test.js | 16 +-
15 files changed, 488 insertions(+), 468 deletions(-)
diff --git a/README.md b/README.md
index a8af69b..b226161 100644
--- a/README.md
+++ b/README.md
@@ -1,49 +1,49 @@
-iconv-lite - native javascript conversion between character encodings.
+iconv-lite - pure javascript character encoding conversion
======================================================================
+## Features
+
+* Easy API.
+* Works on Windows and in sandboxed environments like [Cloud9](http://c9.io) (doesn't need native code compilation).
+* Faster than iconv (see below for performance comparison).
+
## Usage
var iconv = require('iconv-lite');
// Convert from an encoded buffer to string.
- str = iconv.fromEncoding(buf, 'win-1251');
- // Or
- str = iconv.decode(buf, 'win-1251');
+ str = iconv.decode(buf, 'win1251');
// Convert from string to an encoded buffer.
- buf = iconv.toEncoding("Sample input string", 'win-1251');
- // Or
- buf = iconv.encode("Sample input string", 'win-1251');
+ buf = iconv.encode("Sample input string", 'win1251');
## Supported encodings
-Currently the following encodings supported:
-
* All node.js native encodings: 'utf8', 'ucs2', 'ascii', 'binary', 'base64'
-* Base encodings: 'latin1'
-* Western encoding: 'windows-1252'
-* Cyrillic encodings: 'windows-1251', 'koi8-r', 'iso-8859-5'
-* Simplified chinese: 'gbk', 'gb2313'
-* Greek encodings: 'windows-1253', 'iso-8859-7'/'greek', 'cp737', 'cp28597'
-* Turkish encodings: 'windows1254', 'iso-8859-9'/'turkish'
+* All widespread single byte encodings: Windows 125x family, ISO-8859 family,
+ IBM/DOS codepages, Macintosh family, KOI8 family.
+ Aliases like 'latin1', 'us-ascii' also supported.
+* Multibyte encodings: 'gbk', 'gb2313'.
-Other encodings are easy to add, see the source. Please, participate.
+Others are easy to add, see the source. Please, participate.
+Most encodings are generated from node-iconv. Thank you Ben Noordhuis and iconv authors!
+
+Not supported yet: Big5, EUC family, Shift_JIS.
## Encoding/decoding speed
Comparison with iconv module (1000 times 256kb, on Core i5/2.5 GHz).
- Operation\module iconv iconv-lite (this)
- toEncoding('win1251') 19.57 mb/s 49.04 mb/s
- fromEncoding('win1251') 16.39 mb/s 24.11 mb/s
+ operation iconv iconv-lite (this module)
+ ----------------------------------------------------------
+ encode('win1251') 19.57 mb/s 49.04 mb/s
+ decode('win1251') 16.39 mb/s 24.11 mb/s
## Notes
-This module is JavaScript-only, thus can be used in a sandboxed environment like [Cloud9](http://c9.io).
-
-Untranslatable characters are set to '?'. No transliteration is currently supported, pull requests are welcome.
+Untranslatable characters are set to � or ?. No transliteration is currently supported, pull requests are welcome.
## Testing
diff --git a/encodings/arabic.js b/encodings/arabic.js
deleted file mode 100644
index 07be51e..0000000
--- a/encodings/arabic.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Arabic encodings
-
-module.exports = {
- "windows1256": {
- type: "singlebyte",
- chars: "\u20ac\u067e\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06af\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u06a9\u2122\u0691\u203a\u0153\u200c\u200d\u06ba\u00a0\u060c\u00a2\u00a3\u00a4\u00a5\u00a6\u00a7\u00a8\u00a9\u06be\u00ab\u00ac\u00ad\u00ae\u00af\u00b0\u00b1\u00b2\u00b3\u00b4\u00b5\u00b6\u00b7\u00b8\u00b9\u061b\u00bb\u00bc\u00bd\u00be\u061f\u06c1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u [...]
- },
- "win1256": "windows1256",
- "cp1256": "windows1256",
- 1256: "windows1256",
-
- "iso88596": {
- type: "singlebyte",
- chars: "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088\u0089\u008a\u008b\u008c\u008d\u008e\u008f\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098\u0099\u009a\u009b\u009c\u009d\u009e\u009f\u00a0\ufffd\ufffd\ufffd\u00a4\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u060c\u00ad\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u061b\ufffd\ufffd\ufffd\u061f\ufffd\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u [...]
- },
- "arabic": "iso88596",
- "cp28596": "iso88596",
- 28596: "iso88596",
-
-};
diff --git a/encodings/baltic.js b/encodings/baltic.js
deleted file mode 100644
index 4ce025e..0000000
--- a/encodings/baltic.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Estonian, Latvian and Lithuanian encodings
-
-module.exports = {
- "windows1257": {
- type: "singlebyte",
- chars: "\u20ac\ufffd\u201a\ufffd\u201e\u2026\u2020\u2021\ufffd\u2030\ufffd\u2039\ufffd\u00a8\u02c7\u00b8\ufffd\u2018\u2019\u201c\u201d\u2022\u2013\u2014\ufffd\u2122\ufffd\u203a\ufffd\u00af\u02db\ufffd\u00a0\ufffd\u00a2\u00a3\u00a4\ufffd\u00a6\u00a7\u00d8\u00a9\u0156\u00ab\u00ac\u00ad\u00ae\u00c6\u00b0\u00b1\u00b2\u00b3\u00b4\u00b5\u00b6\u00b7\u00f8\u00b9\u0157\u00bb\u00bc\u00bd\u00be\u00e6\u0104\u012e\u0100\u0106\u00c4\u00c5\u0118\u0112\u010c\u00c9\u0179\u0116\u0122\u0136\u012a\u [...]
- },
- "win1257": "windows1257",
- "cp1257": "windows1257",
- 1257: "windows1257",
-
- "iso885913": {
- type: "singlebyte",
- chars: "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088\u0089\u008a\u008b\u008c\u008d\u008e\u008f\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098\u0099\u009a\u009b\u009c\u009d\u009e\u009f\u00a0\u201d\u00a2\u00a3\u00a4\u201e\u00a6\u00a7\u00d8\u00a9\u0156\u00ab\u00ac\u00ad\u00ae\u00c6\u00b0\u00b1\u00b2\u00b3\u201c\u00b5\u00b6\u00b7\u00f8\u00b9\u0157\u00bb\u00bc\u00bd\u00be\u00e6\u0104\u012e\u0100\u0106\u00c4\u00c5\u0118\u0112\u010c\u00c9\u0179\u0116\u0122\u0136\u012a\u [...]
- },
- "baltic": "iso885913",
- "cp28594": "iso885913",
- 28594: "iso885913",
-
-};
diff --git a/encodings/cyrillic.js b/encodings/cyrillic.js
deleted file mode 100644
index 4a89f76..0000000
--- a/encodings/cyrillic.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Cyrillic encodings
-
-module.exports = {
- "windows1251": {
- type: "singlebyte",
- chars: "\u0402\u0403\u201a\u0453\u201e\u2026\u2020\u2021\u20ac\u2030\u0409\u2039\u040a\u040c\u040b\u040f\u0452\u2018\u2019\u201c\u201d\u2022\u2013\u2014\ufffd\u2122\u0459\u203a\u045a\u045c\u045b\u045f\u00a0\u040e\u045e\u0408\u00a4\u0490\u00a6\u00a7\u0401\u00a9\u0404\u00ab\u00ac\u00ad\u00ae\u0407\u00b0\u00b1\u0406\u0456\u0491\u00b5\u00b6\u00b7\u0451\u2116\u0454\u00bb\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u [...]
- },
- "win1251": "windows1251",
- "cp1251": "windows1251",
- 1251: "windows1251",
-
- "iso88595": {
- type: "singlebyte",
- chars: "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088\u0089\u008a\u008b\u008c\u008d\u008e\u008f\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098\u0099\u009a\u009b\u009c\u009d\u009e\u009f\u00a0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040a\u040b\u040c\u00ad\u040e\u040f\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u [...]
- },
- "cp28595": "iso88595",
- 28595: "iso88595",
-
- "koi8r": {
- type: "singlebyte",
- chars: "\u2500\u2502\u250c\u2510\u2514\u2518\u251c\u2524\u252c\u2534\u253c\u2580\u2584\u2588\u258c\u2590\u2591\u2592\u2593\u2320\u25a0\u2219\u221a\u2248\u2264\u2265\u00a0\u2321\u00b0\u00b2\u00b7\u00f7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255a\u255b\u255c\u255d\u255e\u255f\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256a\u256b\u256c\u00a9\u044e\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043a\u043b\u043c\u043d\u [...]
- },
- "cp20866": "koi8r",
- 20866: "koi8r",
-
-};
diff --git a/encodings/greek.js b/encodings/greek.js
deleted file mode 100644
index bf26701..0000000
--- a/encodings/greek.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Greek encodings
-
-module.exports = {
- "windows1253": {
- type: "singlebyte",
- chars: "\u20ac\ufffd\u201a\u0192\u201e\u2026\u2020\u2021\ufffd\u2030\ufffd\u2039\ufffd\ufffd\ufffd\ufffd\ufffd\u2018\u2019\u201c\u201d\u2022\u2013\u2014\ufffd\u2122\ufffd\u203a\ufffd\ufffd\ufffd\ufffd\u00a0\u0385\u0386\u00a3\u00a4\u00a5\u00a6\u00a7\u00a8\u00a9\ufffd\u00ab\u00ac\u00ad\u00ae\u2015\u00b0\u00b1\u00b2\u00b3\u0384\u00b5\u00b6\u00b7\u0388\u0389\u038a\u00bb\u038c\u00bd\u038e\u038f\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u [...]
- },
- "win1253": "windows1253",
- "cp1253": "windows1253",
- 1253: "windows1253",
-
- "iso88597": {
- type: "singlebyte",
- chars: "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088\u0089\u008a\u008b\u008c\u008d\u008e\u008f\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098\u0099\u009a\u009b\u009c\u009d\u009e\u009f\u00a0\u2018\u2019\u00a3\u20ac\u20af\u00a6\u00a7\u00a8\u00a9\u037a\u00ab\u00ac\u00ad\ufffd\u2015\u00b0\u00b1\u00b2\u00b3\u0384\u0385\u0386\u00b7\u0388\u0389\u038a\u00bb\u038c\u00bd\u038e\u038f\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u [...]
- },
- "greek": "iso88597",
- "greek8": "iso88597",
- "cp28597": "iso88597",
- 28597: "iso88597",
-
- "cp737": {
- type: "singlebyte",
- chars: "\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c3\u03c2\u03c4\u03c5\u03c6\u03c7\u03c8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u [...]
- },
- 737: "cp737",
-
-};
diff --git a/encodings/hebrew.js b/encodings/hebrew.js
deleted file mode 100644
index 638ff2d..0000000
--- a/encodings/hebrew.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Hebrew encodings
-
-module.exports = {
- "windows1255": {
- type: "singlebyte",
- chars: "\u20ac\ufffd\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\ufffd\u2039\ufffd\ufffd\ufffd\ufffd\ufffd\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u02dc\u2122\ufffd\u203a\ufffd\ufffd\ufffd\ufffd\u00a0\u00a1\u00a2\u00a3\u20aa\u00a5\u00a6\u00a7\u00a8\u00a9\u00d7\u00ab\u00ac\u00ad\u00ae\u00af\u00b0\u00b1\u00b2\u00b3\u00b4\u00b5\u00b6\u00b7\u00b8\u00b9\u00f7\u00bb\u00bc\u00bd\u00be\u00bf\u05b0\u05b1\u05b2\u05b3\u05b4\u05b5\u05b6\u05b7\u05b8\u05b9\ufffd\u05bb\u05bc\u05bd\u05be\u [...]
- },
- "win1255": "windows1255",
- "cp1255": "windows1255",
- 1255: "windows1255",
-
- "iso88598": {
- type: "singlebyte",
- chars: "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088\u0089\u008a\u008b\u008c\u008d\u008e\u008f\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098\u0099\u009a\u009b\u009c\u009d\u009e\u009f\u00a0\ufffd\u00a2\u00a3\u00a4\u00a5\u00a6\u00a7\u00a8\u00a9\u00d7\u00ab\u00ac\u00ad\u00ae\u00af\u00b0\u00b1\u00b2\u00b3\u00b4\u00b5\u00b6\u00b7\u00b8\u00b9\u00f7\u00bb\u00bc\u00bd\u00be\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u [...]
- },
- "hebrew": "iso88598",
- "hebrew8": "iso88598",
- "cp28598": "iso88598",
- 28598: "iso88598",
-
-};
diff --git a/encodings/singlebyte.js b/encodings/singlebyte.js
new file mode 100644
index 0000000..5e068df
--- /dev/null
+++ b/encodings/singlebyte.js
@@ -0,0 +1,324 @@
+module.exports = {
+ "437": "cp437",
+ "737": "cp737",
+ "775": "cp775",
+ "850": "cp850",
+ "852": "cp852",
+ "855": "cp855",
+ "857": "cp857",
+ "858": "cp858",
+ "860": "cp860",
+ "861": "cp861",
+ "862": "cp862",
+ "863": "cp863",
+ "864": "cp864",
+ "865": "cp865",
+ "866": "cp866",
+ "869": "cp869",
+ "874": "iso885911",
+ "1250": "windows1250",
+ "1251": "windows1251",
+ "1252": "windows1252",
+ "1253": "windows1253",
+ "1254": "windows1254",
+ "1255": "windows1255",
+ "1256": "windows1256",
+ "1257": "windows1257",
+ "1258": "windows1258",
+ "28591": "iso88591",
+ "28592": "iso88592",
+ "28593": "iso88593",
+ "28594": "iso88594",
+ "28595": "iso88595",
+ "28596": "iso88596",
+ "28597": "iso88597",
+ "28598": "iso88598",
+ "28599": "iso88599",
+ "28600": "iso885910",
+ "28601": "iso885911",
+ "28603": "iso885913",
+ "28604": "iso885914",
+ "28605": "iso885915",
+ "28606": "iso885916",
+ "ascii8bit": "ascii",
+ "us-ascii": "ascii",
+ "latin1": "iso88591",
+ "latin2": "iso88592",
+ "latin3": "iso88593",
+ "latin4": "iso88594",
+ "latin6": "iso885910",
+ "latin7": "iso885913",
+ "latin8": "iso885914",
+ "latin9": "iso885915",
+ "latin10": "iso885916",
+ "cp819": "iso88951",
+ "arabic": "iso88596",
+ "arabic8": "iso88596",
+ "greek": "iso88597",
+ "greek8": "iso88597",
+ "hebrew": "iso88598",
+ "hebrew8": "iso88598",
+ "turkish": "iso88599",
+ "turkish8": "iso88599",
+ "thai": "iso885911",
+ "thai8": "iso885911",
+ "tis620": "iso885911",
+ "windows874": "iso885911",
+ "win874": "iso885911",
+ "cp874": "iso885911",
+ "celtic": "iso885914",
+ "celtic8": "iso885914",
+ "windows1250": {
+ "type": "singlebyte",
+ "chars": "€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"
+ },
+ "win1250": "windows1250",
+ "cp1250": "windows1250",
+ "windows1251": {
+ "type": "singlebyte",
+ "chars": "ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
+ },
+ "win1251": "windows1251",
+ "cp1251": "windows1251",
+ "windows1252": {
+ "type": "singlebyte",
+ "chars": "€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
+ },
+ "win1252": "windows1252",
+ "cp1252": "windows1252",
+ "windows1253": {
+ "type": "singlebyte",
+ "chars": "€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"
+ },
+ "win1253": "windows1253",
+ "cp1253": "windows1253",
+ "windows1254": {
+ "type": "singlebyte",
+ "chars": "€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"
+ },
+ "win1254": "windows1254",
+ "cp1254": "windows1254",
+ "windows1255": {
+ "type": "singlebyte",
+ "chars": "€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹ�ֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת���"
+ },
+ "win1255": "windows1255",
+ "cp1255": "windows1255",
+ "windows1256": {
+ "type": "singlebyte",
+ "chars": "€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œں ،¢£¤¥¦§¨©ھ«¬®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûüے"
+ },
+ "win1256": "windows1256",
+ "cp1256": "windows1256",
+ "windows1257": {
+ "type": "singlebyte",
+ "chars": "€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙"
+ },
+ "win1257": "windows1257",
+ "cp1257": "windows1257",
+ "windows1258": {
+ "type": "singlebyte",
+ "chars": "€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"
+ },
+ "win1258": "windows1258",
+ "cp1258": "windows1258",
+ "iso88591": {
+ "type": "singlebyte",
+ "chars": "
¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
+ },
+ "cp28591": "iso88591",
+ "iso88592": {
+ "type": "singlebyte",
+ "chars": "
Ą˘Ł¤ĽŚ§¨ŠŞŤŹŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"
+ },
+ "cp28592": "iso88592",
+ "iso88593": {
+ "type": "singlebyte",
+ "chars": "
Ħ˘£¤�Ĥ§¨İŞĞĴ�Ż°ħ²³´µĥ·¸ışğĵ½�żÀÁÂ�ÄĊĈÇÈÉÊËÌÍÎÏ�ÑÒÓÔĠÖ×ĜÙÚÛÜŬŜßàáâ�äċĉçèéêëìíîï�ñòóôġö÷ĝùúûüŭŝ˙"
+ },
+ "cp28593": "iso88593",
+ "iso88594": {
+ "type": "singlebyte",
+ "chars": "
ĄĸŖ¤ĨĻ§¨ŠĒĢŦŽ¯°ą˛ŗ´ĩļˇ¸šēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖ×ØŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙"
+ },
+ "cp28594": "iso88594",
+ "iso88595": {
+ "type": "singlebyte",
+ "chars": "
ЁЂЃЄЅІЇЈЉЊЋЌЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ"
+ },
+ "cp28595": "iso88595",
+ "iso88596": {
+ "type": "singlebyte",
+ "chars": "
���¤�������،�������������؛���؟�ءآأؤإئابةتثجحخدذرزسشصضطظعغ�����ـفقكلمنهوىيًٌٍَُِّْ�������������"
+ },
+ "cp28596": "iso88596",
+ "iso88597": {
+ "type": "singlebyte",
+ "chars": "
‘’£€₯¦§¨©ͺ«¬�―°±²³΄΅Ά·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"
+ },
+ "cp28597": "iso88597",
+ "iso88598": {
+ "type": "singlebyte",
+ "chars": "
�¢£¤¥¦§¨©×«¬®¯°±²³´µ¶·¸¹÷»¼½¾��������������������������������‗אבגדהוזחטיךכלםמןנסעףפץצקרשת���"
+ },
+ "cp28598": "iso88598",
+ "iso88599": {
+ "type": "singlebyte",
+ "chars": "
¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"
+ },
+ "cp28599": "iso88599",
+ "iso885910": {
+ "type": "singlebyte",
+ "chars": "
ĄĒĢĪĨĶ§ĻĐŠŦŽŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞßāáâãäåæįčéęëėíîïðņōóôõöũøųúûüýþĸ"
+ },
+ "cp28600": "iso885910",
+ "iso885911": {
+ "type": "singlebyte",
+ "chars": "
กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"
+ },
+ "cp28601": "iso885911",
+ "iso885913": {
+ "type": "singlebyte",
+ "chars": "
”¢£¤„¦§Ø©Ŗ«¬®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’"
+ },
+ "cp28603": "iso885913",
+ "iso885914": {
+ "type": "singlebyte",
+ "chars": "
Ḃḃ£ĊċḊ§Ẁ©ẂḋỲ®ŸḞḟĠġṀṁ¶ṖẁṗẃṠỳẄẅṡÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŴÑÒÓÔÕÖṪØÙÚÛÜÝŶßàáâãäåæçèéêëìíîïŵñòóôõöṫøùúûüýŷÿ"
+ },
+ "cp28604": "iso885914",
+ "iso885915": {
+ "type": "singlebyte",
+ "chars": "
¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
+ },
+ "cp28605": "iso885915",
+ "iso885916": {
+ "type": "singlebyte",
+ "chars": "
ĄąŁ€„Š§š©Ș«ŹźŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ"
+ },
+ "cp28606": "iso885916",
+ "cp437": {
+ "type": "singlebyte",
+ "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
+ },
+ "ibm437": "cp437",
+ "cp737": {
+ "type": "singlebyte",
+ "chars": "ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ "
+ },
+ "ibm737": "cp737",
+ "cp775": {
+ "type": "singlebyte",
+ "chars": "ĆüéāäģåćłēŖŗīŹÄÅÉæÆōöĢ¢ŚśÖÜø£ØפĀĪóŻżź”¦©®¬½¼Ł«»░▒▓│┤ĄČĘĖ╣║╗╝ĮŠ┐└┴┬├─┼ŲŪ╚╔╩╦╠═╬Žąčęėįšųūž┘┌█▄▌▐▀ÓßŌŃõÕµńĶķĻļņĒŅ’±“¾¶§÷„°∙·¹³²■ "
+ },
+ "ibm775": "cp775",
+ "cp850": {
+ "type": "singlebyte",
+ "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´±‗¾¶§÷¸°¨·¹³²■ "
+ },
+ "ibm850": "cp850",
+ "cp852": {
+ "type": "singlebyte",
+ "chars": "ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´˝˛ˇ˘§÷¸°¨˙űŘř■ "
+ },
+ "ibm852": "cp852",
+ "cp855": {
+ "type": "singlebyte",
+ "chars": "ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬¤лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№ыЫзЗшШэЭщЩчЧ§■ "
+ },
+ "ibm855": "cp855",
+ "cp857": {
+ "type": "singlebyte",
+ "chars": "ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´±�¾¶§÷¸°¨·¹³²■ "
+ },
+ "ibm857": "cp857",
+ "cp858": {
+ "type": "singlebyte",
+ "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´±‗¾¶§÷¸°¨·¹³²■ "
+ },
+ "ibm858": "cp858",
+ "cp860": {
+ "type": "singlebyte",
+ "chars": "ÇüéâãàÁçêÊèÍÔìÃÂÉÀÈôõòÚùÌÕÜ¢£Ù₧ÓáíóúñѪº¿Ò¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
+ },
+ "ibm860": "cp860",
+ "cp861": {
+ "type": "singlebyte",
+ "chars": "ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
+ },
+ "ibm861": "cp861",
+ "cp862": {
+ "type": "singlebyte",
+ "chars": "אבגדהוזחטיךכלםמןנסעףפץצקרשת¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
+ },
+ "ibm862": "cp862",
+ "cp863": {
+ "type": "singlebyte",
+ "chars": "ÇüéâÂà¶çêëèïî‗À§ÉÈÊôËÏûù¤ÔÜ¢£ÙÛƒ¦´óú¨¸³¯Î⌐¬½¼¾«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
+ },
+ "ibm863": "cp863",
+ "cp864": {
+ "type": "singlebyte",
+ "chars": "°·∙√▒─│┼┤┬├┴┐┌└┘β∞φ±½¼≈«»ﻷﻸ��ﻻﻼ� ﺂ£¤ﺄ��ﺎﺏﺕﺙ،ﺝﺡﺥ٠١٢٣٤٥٦٧٨٩ﻑ؛ﺱﺵﺹ؟¢ﺀﺁﺃﺅﻊﺋﺍﺑﺓﺗﺛﺟﺣﺧﺩﺫﺭﺯﺳﺷﺻﺿﻁﻅﻋﻏ¦¬÷×ﻉـﻓﻗﻛﻟﻣﻧﻫﻭﻯﻳﺽﻌﻎﻍﻡﹽّﻥﻩﻬﻰﻲﻐﻕﻵﻶﻝﻙﻱ■�"
+ },
+ "ibm864": "cp864",
+ "cp865": {
+ "type": "singlebyte",
+ "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
+ },
+ "ibm865": "cp865",
+ "cp866": {
+ "type": "singlebyte",
+ "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ "
+ },
+ "ibm866": "cp866",
+ "cp869": {
+ "type": "singlebyte",
+ "chars": "������Ά�·¬¦‘’Έ―ΉΊΪΌ��ΎΫ©Ώ²³ά£έήίϊΐόύΑΒΓΔΕΖΗ½ΘΙ«»░▒▓│┤ΚΛΜΝ╣║╗╝ΞΟ┐└┴┬├─┼ΠΡ╚╔╩╦╠═╬ΣΤΥΦΧΨΩαβγ┘┌█▄δε▀ζηθικλμνξοπρσςτ΄±υφχ§ψ΅°¨ωϋΰώ■ "
+ },
+ "ibm869": "cp869",
+ "maccroatian": {
+ "type": "singlebyte",
+ "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈Ć«Č… ÀÃÕŒœĐ—“”‘’÷◊�©⁄¤‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ"
+ },
+ "maccyrillic": {
+ "type": "singlebyte",
+ "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"
+ },
+ "macgreek": {
+ "type": "singlebyte",
+ "chars": "Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�"
+ },
+ "maciceland": {
+ "type": "singlebyte",
+ "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
+ },
+ "macroman": {
+ "type": "singlebyte",
+ "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
+ },
+ "macromania": {
+ "type": "singlebyte",
+ "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂŞ∞±≤≥¥µ∂∑∏π∫ªºΩăş¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›Ţţ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
+ },
+ "macthai": {
+ "type": "singlebyte",
+ "chars": "«»…“”�•‘’� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู–—฿เแโใไๅๆ็่้๊๋์ํ™๏๐๑๒๓๔๕๖๗๘๙®©����"
+ },
+ "macturkish": {
+ "type": "singlebyte",
+ "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ"
+ },
+ "macukraine": {
+ "type": "singlebyte",
+ "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"
+ },
+ "koi8r": {
+ "type": "singlebyte",
+ "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
+ },
+ "koi8u": {
+ "type": "singlebyte",
+ "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
+ }
+};
\ No newline at end of file
diff --git a/encodings/turkish.js b/encodings/turkish.js
deleted file mode 100644
index f29cbfc..0000000
--- a/encodings/turkish.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Turkish encodings
-
-module.exports = {
- "windows1254": {
- type: "singlebyte",
- chars: "\u20ac\ufffd\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\u0160\u2039\u0152\ufffd\ufffd\ufffd\ufffd\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u02dc\u2122\u0161\u203a\u0153\ufffd\ufffd\u0178\u00a0\u00a1\u00a2\u00a3\u00a4\u00a5\u00a6\u00a7\u00a8\u00a9\u00aa\u00ab\u00ac\u00ad\u00ae\u00af\u00b0\u00b1\u00b2\u00b3\u00b4\u00b5\u00b6\u00b7\u00b8\u00b9\u00ba\u00bb\u00bc\u00bd\u00be\u00bf\u00c0\u00c1\u00c2\u00c3\u00c4\u00c5\u00c6\u00c7\u00c8\u00c9\u00ca\u00cb\u00cc\u00cd\u00ce\u [...]
- },
- "win1254": "windows1254",
- "cp1254": "windows1254",
- 1254: "windows1254",
-
- "iso88599": {
- type: "singlebyte",
- chars: "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088\u0089\u008a\u008b\u008c\u008d\u008e\u008f\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098\u0099\u009a\u009b\u009c\u009d\u009e\u009f\u00a0\u00a1\u00a2\u00a3\u00a4\u00a5\u00a6\u00a7\u00a8\u00a9\u00aa\u00ab\u00ac\u00ad\u00ae\u00af\u00b0\u00b1\u00b2\u00b3\u00b4\u00b5\u00b6\u00b7\u00b8\u00b9\u00ba\u00bb\u00bc\u00bd\u00be\u00bf\u00c0\u00c1\u00c2\u00c3\u00c4\u00c5\u00c6\u00c7\u00c8\u00c9\u00ca\u00cb\u00cc\u00cd\u00ce\u [...]
- },
- "turkish": "iso88599",
- "turkish8": "iso88599",
- "cp28599": "iso88599",
- 28599: "iso88599",
-
-};
diff --git a/encodings/vietnamese.js b/encodings/vietnamese.js
deleted file mode 100644
index 5cafc37..0000000
--- a/encodings/vietnamese.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Vietnamese encodings
-
-module.exports = {
- "windows1258": {
- type: "singlebyte",
- chars: "\u20ac\ufffd\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\ufffd\u2039\u0152\ufffd\ufffd\ufffd\ufffd\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u02dc\u2122\ufffd\u203a\u0153\ufffd\ufffd\u0178\u00a0\u00a1\u00a2\u00a3\u00a4\u00a5\u00a6\u00a7\u00a8\u00a9\u00aa\u00ab\u00ac\u00ad\u00ae\u00af\u00b0\u00b1\u00b2\u00b3\u00b4\u00b5\u00b6\u00b7\u00b8\u00b9\u00ba\u00bb\u00bc\u00bd\u00be\u00bf\u00c0\u00c1\u00c2\u0102\u00c4\u00c5\u00c6\u00c7\u00c8\u00c9\u00ca\u00cb\u0300\u00cd\u00ce\u [...]
- },
- "win1258": "windows1258",
- "cp1258": "windows1258",
- 1258: "windows1258",
-
-};
diff --git a/encodings/western.js b/encodings/western.js
deleted file mode 100644
index e1d4649..0000000
--- a/encodings/western.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Central and Eastern European encodings
-
-module.exports = {
- "windows1250": {
- type: "singlebyte",
- chars: "\u20ac\ufffd\u201a\ufffd\u201e\u2026\u2020\u2021\ufffd\u2030\u0160\u2039\u015a\u0164\u017d\u0179\ufffd\u2018\u2019\u201c\u201d\u2022\u2013\u2014\ufffd\u2122\u0161\u203a\u015b\u0165\u017e\u017a\u00a0\u02c7\u02d8\u0141\u00a4\u0104\u00a6\u00a7\u00a8\u00a9\u015e\u00ab\u00ac\u00ad\u00ae\u017b\u00b0\u00b1\u02db\u0142\u00b4\u00b5\u00b6\u00b7\u00b8\u0105\u015f\u00bb\u013d\u02dd\u013e\u017c\u0154\u00c1\u00c2\u0102\u00c4\u0139\u0106\u00c7\u010c\u00c9\u0118\u00cb\u011a\u00cd\u00ce\u [...]
- },
- "win1250": "windows1250",
- "cp1250": "windows1250",
- 1250: "windows1250",
-
- "windows1252": {
- type: "singlebyte",
- chars: "\u20ac\ufffd\u201a\u0192\u201e\u2026\u2020\u2021\u02c6\u2030\u0160\u2039\u0152\ufffd\u017d\ufffd\ufffd\u2018\u2019\u201c\u201d\u2022\u2013\u2014\u02dc\u2122\u0161\u203a\u0153\ufffd\u017e\u0178\u00a0\u00a1\u00a2\u00a3\u00a4\u00a5\u00a6\u00a7\u00a8\u00a9\u00aa\u00ab\u00ac\u00ad\u00ae\u00af\u00b0\u00b1\u00b2\u00b3\u00b4\u00b5\u00b6\u00b7\u00b8\u00b9\u00ba\u00bb\u00bc\u00bd\u00be\u00bf\u00c0\u00c1\u00c2\u00c3\u00c4\u00c5\u00c6\u00c7\u00c8\u00c9\u00ca\u00cb\u00cc\u00cd\u00ce\u [...]
- },
- "win1252": "windows1252",
- "cp1252": "windows1252",
- 1252: "windows1252",
-
- "iso88591": {
- type: "singlebyte",
- chars: "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088\u0089\u008a\u008b\u008c\u008d\u008e\u008f\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098\u0099\u009a\u009b\u009c\u009d\u009e\u009f\u00a0\u00a1\u00a2\u00a3\u00a4\u00a5\u00a6\u00a7\u00a8\u00a9\u00aa\u00ab\u00ac\u00ad\u00ae\u00af\u00b0\u00b1\u00b2\u00b3\u00b4\u00b5\u00b6\u00b7\u00b8\u00b9\u00ba\u00bb\u00bc\u00bd\u00be\u00bf\u00c0\u00c1\u00c2\u00c3\u00c4\u00c5\u00c6\u00c7\u00c8\u00c9\u00ca\u00cb\u00cc\u00cd\u00ce\u [...]
- },
- "latin1": "iso88591",
- "latin-1": "iso88591",
- "cp28591": "iso88591",
- 28591: "iso88591",
-
- "iso88592": {
- type: "singlebyte",
- chars: "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088\u0089\u008a\u008b\u008c\u008d\u008e\u008f\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098\u0099\u009a\u009b\u009c\u009d\u009e\u009f\u00a0\u0104\u02d8\u0141\u00a4\u013d\u015a\u00a7\u00a8\u0160\u015e\u0164\u0179\u00ad\u017d\u017b\u00b0\u0105\u02db\u0142\u00b4\u013e\u015b\u02c7\u00b8\u0161\u015f\u0165\u017a\u02dd\u017e\u017c\u0154\u00c1\u00c2\u0102\u00c4\u0139\u0106\u00c7\u010c\u00c9\u0118\u00cb\u011a\u00cd\u00ce\u [...]
- },
- "latin2": "iso88592",
- "latin-2": "iso88592",
- "cp28592": "iso88592",
- 28592: "iso88592",
-
- "cp850": {
- type: "singlebyte",
- chars: "\u00c7\u00fc\u00e9\u00e2\u00e4\u00e0\u00e5\u00e7\u00ea\u00eb\u00e8\u00ef\u00ee\u00ec\u00c4\u00c5\u00c9\u00e6\u00c6\u00f4\u00f6\u00f2\u00fb\u00f9\u00ff\u00d6\u00dc\u00f8\u00a3\u00d8\u00d7\u0192\u00e1\u00ed\u00f3\u00fa\u00f1\u00d1\u00aa\u00ba\u00bf\u00ae\u00ac\u00bd\u00bc\u00a1\u00ab\u00bb\u2591\u2592\u2593\u2502\u2524\u00c1\u00c2\u00c0\u00a9\u2563\u2551\u2557\u255d\u00a2\u00a5\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u00e3\u00c3\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u [...]
- },
- 850: "cp850",
-
-};
diff --git a/generation/generate-encoding.js b/generation/generate-encoding.js
deleted file mode 100644
index c7b5458..0000000
--- a/generation/generate-encoding.js
+++ /dev/null
@@ -1,241 +0,0 @@
-var fs = require("fs");
-var Iconv = require("iconv").Iconv;
-
-var files = [
- {
- name: "western",
- description: "Central and Eastern European",
- encodings: [
- {
- encoding: "WINDOWS-1250",
- name: "windows1250",
- aliases: ["win1250", "cp1250", 1250]
- },
- {
- encoding: "WINDOWS-1252",
- name: "windows1252",
- aliases: ["win1252", "cp1252", 1252]
- },
- {
- encoding: "ISO-8859-1",
- name: "iso88591",
- aliases: ["latin1", "latin-1", "cp28591", 28591]
- },
- {
- encoding: "ISO-8859-2",
- name: "iso88592",
- aliases: ["latin2", "latin-2", "cp28592", 28592]
- },
- {
- encoding: "CP850",
- name: "cp850",
- aliases: [850]
- }
- ]
- },
- {
- name: "cyrillic",
- description: "Cyrillic",
- encodings: [
- {
- encoding: "WINDOWS-1251",
- name: "windows1251",
- aliases: ["win1251", "cp1251", 1251]
- },
- {
- encoding: "ISO-8859-5",
- name: "iso88595",
- aliases: ["cp28595", 28595]
- },
- {
- encoding: "KOI8-R",
- name: "koi8r",
- aliases: ["cp20866", 20866]
- }
- ]
- },
- {
- name: "greek",
- description: "Greek",
- encodings: [
- {
- encoding: "WINDOWS-1253",
- name: "windows1253",
- aliases: ["win1253", "cp1253", 1253]
- },
- {
- encoding: "ISO-8859-7",
- name: "iso88597",
- aliases: ["greek", "greek8", "cp28597", 28597]
- },
- {
- encoding: "CP737",
- name: "cp737",
- aliases: [737]
- }
- ]
- },
- {
- name: "turkish",
- description: "Turkish",
- encodings: [
- {
- encoding: "WINDOWS-1254",
- name: "windows1254",
- aliases: ["win1254", "cp1254", 1254]
- },
- {
- encoding: "ISO-8859-9",
- name: "iso88599",
- aliases: ["turkish", "turkish8", "cp28599", 28599]
- }
- ]
- },
- {
- name: "hebrew",
- description: "Hebrew",
- encodings: [
- {
- encoding: "WINDOWS-1255",
- name: "windows1255",
- aliases: ["win1255", "cp1255", 1255]
- },
- {
- encoding: "ISO-8859-8",
- name: "iso88598",
- aliases: ["hebrew", "hebrew8", "cp28598", 28598]
- }
- ]
- },
- {
- name: "arabic",
- description: "Arabic",
- encodings: [
- {
- encoding: "WINDOWS-1256",
- name: "windows1256",
- aliases: ["win1256", "cp1256", 1256]
- },
- {
- encoding: "ISO-8859-6",
- name: "iso88596",
- aliases: ["arabic", "cp28596", 28596]
- }
- ]
- },
- {
- name: "baltic",
- description: "Estonian, Latvian and Lithuanian",
- encodings: [
- {
- encoding: "WINDOWS-1257",
- name: "windows1257",
- aliases: ["win1257", "cp1257", 1257]
- },
- {
- encoding: "ISO-8859-13",
- name: "iso885913",
- aliases: ["baltic", "cp28594", 28594]
- }
- ]
- },
- {
- name: "vietnamese",
- description: "Vietnamese",
- encodings: [
- {
- encoding: "WINDOWS-1258",
- name: "windows1258",
- aliases: ["win1258", "cp1258", 1258]
- }
- ]
- }
-];
-
-generateFiles();
-
-function generateFiles() {
- files.forEach(function(file) {
- generateFile(file);
- });
-}
-
-function generateFile(file) {
- var fileName = "encodings/" + file.name + ".js";
- var fileContent = "";
-
- fileContent += "// " + file.description + " encodings\n";
- fileContent += "\n";
- fileContent += "module.exports = {\n";
-
- file.encodings.forEach(function(encoding) {
- fileContent += generateEncoding(encoding);
- });
-
- fileContent += "};\n";
-
- fs.writeFileSync(fileName, fileContent);
-}
-
-function generateEncoding(encoding) {
- fileContent = "";
-
- fileContent += ' "' + encoding.name + '": {\n';
- fileContent += ' type: "singlebyte",\n';
- fileContent += ' chars: "' + generateCharsString(encoding.encoding) + '",\n';
- fileContent += ' },\n';
-
- encoding.aliases.forEach(function(alias) {
- if (typeof alias === "string") {
- fileContent += ' "' + alias + '": "' + encoding.name + '",\n';
- } else {
- fileContent += ' ' + alias + ': "' + encoding.name + '",\n';
- }
- });
-
- fileContent += '\n';
-
- return fileContent;
-}
-
-function generateCharsString(encoding) {
- console.log("Generate encoding for " + encoding);
- var iconvToUtf8 = new Iconv(encoding, "utf8");
- var chars = "";
-
- for (var b = 0x80; b < 0x100; b++) {
- chars += byteToUnicodeEscapedString(iconvToUtf8, b);
- }
-
- return chars;
-}
-
-function byteToUnicodeEscapedString(iconv, b) {
- try {
- var bufferSourceEnoding = new Buffer([b])
- var bufferUtf8 = iconv.convert(bufferSourceEnoding);
- var charCode = bufferUtf8.toString().charCodeAt(0);
-
- return "\\u" + integerAsFourDigitHexString(charCode)
- } catch (exception) {
- if (exception.code === "EILSEQ") {
- return "\\ufffd";
- } else {
- throw exception;
- }
- }
-}
-
-function integerAsFourDigitHexString(integer) {
- var byte1 = byteToHexString(integer >> 8);
- var byte2 = byteToHexString(integer & 0xff);
-
- return byte1 + byte2;
-}
-
-function byteToHexString(byteValue) {
- var highNibble = (byteValue >> 4).toString(16);
- var lowNibble = (byteValue & 0x0f).toString(16);
-
- return highNibble + lowNibble;
-}
diff --git a/generation/generate-singlebyte.js b/generation/generate-singlebyte.js
new file mode 100644
index 0000000..ce1a043
--- /dev/null
+++ b/generation/generate-singlebyte.js
@@ -0,0 +1,134 @@
+var fs = require("fs");
+var Iconv = require("iconv").Iconv;
+
+
+var encodingFamilies = [
+ {
+ // Windows code pages
+ encodings: [1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258],
+ convert: function(cp) {
+ return {
+ name: "windows-"+cp,
+ aliases: ["win"+cp, "cp"+cp, ""+cp],
+ }
+ }
+ },
+ {
+ // ISO-8859 code pages
+ encodings: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16],
+ convert: function(i) {
+ return {
+ name: "iso-8859-"+i,
+ aliases: ["cp"+(28590+i), (28590+i)],
+ }
+ }
+ },
+ {
+ // IBM/DOS code pages
+ encodings: [437, 737, 775, 850, 852, 855, 857, 858, 860, 861, 862, 863, 864, 865, 866, 869],
+ convert: function(cp) {
+ return {
+ name: "CP"+cp,
+ aliases: ["ibm"+cp, ""+cp],
+ }
+ }
+ },
+ {
+ // Macintosh code pages
+ encodings: ["macCroatian", "macCyrillic", "macGreek",
+ "macIceland", "macRoman", "macRomania",
+ "macThai", "macTurkish", "macUkraine"],
+ },
+ {
+ // KOI8 code pages
+ encodings: ["KOI8-R", "KOI8-U"],
+ },
+];
+
+
+var encodings = {
+ // Aliases.
+ "ascii8bit": "ascii",
+ "us-ascii": "ascii",
+
+ "latin1": "iso88591",
+ "latin2": "iso88592",
+ "latin3": "iso88593",
+ "latin4": "iso88594",
+ "latin6": "iso885910",
+ "latin7": "iso885913",
+ "latin8": "iso885914",
+ "latin9": "iso885915",
+ "latin10": "iso885916",
+
+ "cp819": "iso88951",
+ "arabic": "iso88596",
+ "arabic8": "iso88596",
+ "greek" : "iso88597",
+ "greek8" : "iso88597",
+ "hebrew": "iso88598",
+ "hebrew8": "iso88598",
+ "turkish": "iso88599",
+ "turkish8": "iso88599",
+ "thai": "iso885911",
+ "thai8": "iso885911",
+ "tis620": "iso885911",
+ "windows874": "iso885911",
+ "win874": "iso885911",
+ "cp874": "iso885911",
+ "874": "iso885911",
+ "celtic": "iso885914",
+ "celtic8": "iso885914",
+};
+
+// Add all encodings from encodingFamilies.
+encodingFamilies.forEach(function(family){
+ family.encodings.forEach(function(encoding){
+ if (family.convert)
+ encoding = family.convert(encoding);
+
+ var encodingIconvName = encoding.name ? encoding.name : encoding;
+ var encodingName = encodingIconvName.replace(/[-_]/g, "").toLowerCase();
+
+ encodings[encodingName] = {
+ type: "singlebyte",
+ chars: generateCharsString(encodingIconvName)
+ };
+
+ if (encoding.aliases)
+ encoding.aliases.forEach(function(alias){
+ encodings[alias] = encodingName;
+ });
+ });
+});
+
+// Write encodings.
+fs.writeFileSync("encodings/singlebyte.js",
+ "module.exports = " + JSON.stringify(encodings, undefined, " ") + ";");
+
+
+function generateCharsString(encoding) {
+ console.log("Generate encoding for " + encoding);
+ var iconvToUtf8 = new Iconv(encoding, "UTF-8");
+ var chars = "";
+
+ for (var b = 0x80; b < 0x100; b++) {
+
+ try {
+ var convertedChar = iconvToUtf8.convert(new Buffer([b])).toString();
+
+ if (convertedChar.length != 1)
+ throw new Error("Single-byte encoding error: Must return single char.");
+ } catch (exception) {
+ if (exception.code === "EILSEQ") {
+ convertedChar = "\ufffd";
+ } else {
+ throw exception;
+ }
+ }
+
+ chars += convertedChar;
+ }
+
+ return chars;
+}
diff --git a/index.js b/index.js
index 04d35fc..99e8c0a 100644
--- a/index.js
+++ b/index.js
@@ -54,10 +54,6 @@ var iconv = module.exports = {
binary: "internal",
ascii: "internal",
base64: "internal",
- latin1: {
- type: "internal",
- originalEncoding: "binary"
- },
// Codepage single-byte encodings.
singlebyte: function(options) {
diff --git a/package.json b/package.json
index a1d04ce..15daf32 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "iconv-lite",
"description": "Convert character encodings in pure javascript.",
- "version": "0.1.4",
+ "version": "0.2.0",
"keywords": ["iconv", "convert", "charset"],
"author": "Alexander Shtuchkin <ashtuchkin at gmail.com>",
diff --git a/test/turkish-test.js b/test/turkish-test.js
index d34dcbd..b2eb68e 100644
--- a/test/turkish-test.js
+++ b/test/turkish-test.js
@@ -11,13 +11,13 @@ var encodings = [{
strings: {
empty: "",
ascii: ascii,
- greek: "€‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ",
+ turkish: "€‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ",
untranslatable: "\x81\x8d\x8e\x8f\x90\x9d\x9e"
},
encodedStrings: {
empty: new Buffer(''),
ascii: new Buffer(ascii, 'binary'),
- greek: new Buffer(
+ turkish: new Buffer(
'\x80\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c' +
'\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9f' +
'\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xae\xaf' +
@@ -34,16 +34,14 @@ var encodings = [{
strings: {
empty: "",
ascii: ascii,
- greek: "¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ",
- untranslatable:
- '\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f' +
- '\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f'
+ turkish: "\xa0¡¢£¤¥¦§¨©ª«¬\xad®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ",
+ untranslatable: ''
},
encodedStrings: {
empty: new Buffer(''),
ascii: new Buffer(ascii, 'binary'),
- greek: new Buffer(
- '\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xae\xaf' +
+ turkish: new Buffer(
+ '\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf' +
'\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf' +
'\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf' +
'\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf' +
@@ -56,7 +54,7 @@ var encodings = [{
var testsBatch = {};
encodings.forEach(function(encoding) {
var enc = encoding.variations[0];
- var key = "greek";
+ var key = "turkish";
var tests = {
"Convert to empty buffer": function() {
assert.strictEqual(iconv.toEncoding("", enc).toString('binary'), new Buffer('').toString('binary'));
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-iconv-lite.git
More information about the Pkg-javascript-commits
mailing list