Intial Commit
This commit is contained in:
1597
nodered/rootfs/data/node_modules/encoding-japanese/src/encoding-convert.js
generated
vendored
Normal file
1597
nodered/rootfs/data/node_modules/encoding-japanese/src/encoding-convert.js
generated
vendored
Normal file
@@ -0,0 +1,1597 @@
|
||||
var config = require('./config');
|
||||
var util = require('./util');
|
||||
var EncodingDetect = require('./encoding-detect');
|
||||
var EncodingTable = require('./encoding-table');
|
||||
|
||||
/**
|
||||
* JIS to SJIS
|
||||
*/
|
||||
function JISToSJIS(data) {
|
||||
var results = [];
|
||||
var index = 0;
|
||||
var i = 0;
|
||||
var len = data && data.length;
|
||||
var b1, b2;
|
||||
|
||||
for (; i < len; i++) {
|
||||
// escape sequence
|
||||
while (data[i] === 0x1B) {
|
||||
if ((data[i + 1] === 0x24 && data[i + 2] === 0x42) ||
|
||||
(data[i + 1] === 0x24 && data[i + 2] === 0x40)) {
|
||||
index = 1;
|
||||
} else if ((data[i + 1] === 0x28 && data[i + 2] === 0x49)) {
|
||||
index = 2;
|
||||
} else if (data[i + 1] === 0x24 && data[i + 2] === 0x28 &&
|
||||
data[i + 3] === 0x44) {
|
||||
index = 3;
|
||||
i++;
|
||||
} else {
|
||||
index = 0;
|
||||
}
|
||||
|
||||
i += 3;
|
||||
if (data[i] === void 0) {
|
||||
return results;
|
||||
}
|
||||
}
|
||||
|
||||
if (index === 1) {
|
||||
b1 = data[i];
|
||||
b2 = data[++i];
|
||||
if (b1 & 0x01) {
|
||||
b1 >>= 1;
|
||||
if (b1 < 0x2F) {
|
||||
b1 += 0x71;
|
||||
} else {
|
||||
b1 -= 0x4F;
|
||||
}
|
||||
if (b2 > 0x5F) {
|
||||
b2 += 0x20;
|
||||
} else {
|
||||
b2 += 0x1F;
|
||||
}
|
||||
} else {
|
||||
b1 >>= 1;
|
||||
if (b1 <= 0x2F) {
|
||||
b1 += 0x70;
|
||||
} else {
|
||||
b1 -= 0x50;
|
||||
}
|
||||
b2 += 0x7E;
|
||||
}
|
||||
results[results.length] = b1 & 0xFF;
|
||||
results[results.length] = b2 & 0xFF;
|
||||
} else if (index === 2) {
|
||||
results[results.length] = data[i] + 0x80 & 0xFF;
|
||||
} else if (index === 3) {
|
||||
// Shift_JIS cannot convert JIS X 0212:1990.
|
||||
results[results.length] = config.UNKNOWN_CHARACTER;
|
||||
} else {
|
||||
results[results.length] = data[i] & 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.JISToSJIS = JISToSJIS;
|
||||
|
||||
/**
|
||||
* JIS to EUCJP
|
||||
*/
|
||||
function JISToEUCJP(data) {
|
||||
var results = [];
|
||||
var index = 0;
|
||||
var len = data && data.length;
|
||||
var i = 0;
|
||||
|
||||
for (; i < len; i++) {
|
||||
|
||||
// escape sequence
|
||||
while (data[i] === 0x1B) {
|
||||
if ((data[i + 1] === 0x24 && data[i + 2] === 0x42) ||
|
||||
(data[i + 1] === 0x24 && data[i + 2] === 0x40)) {
|
||||
index = 1;
|
||||
} else if ((data[i + 1] === 0x28 && data[i + 2] === 0x49)) {
|
||||
index = 2;
|
||||
} else if (data[i + 1] === 0x24 && data[i + 2] === 0x28 &&
|
||||
data[i + 3] === 0x44) {
|
||||
index = 3;
|
||||
i++;
|
||||
} else {
|
||||
index = 0;
|
||||
}
|
||||
|
||||
i += 3;
|
||||
if (data[i] === void 0) {
|
||||
return results;
|
||||
}
|
||||
}
|
||||
|
||||
if (index === 1) {
|
||||
results[results.length] = data[i] + 0x80 & 0xFF;
|
||||
results[results.length] = data[++i] + 0x80 & 0xFF;
|
||||
} else if (index === 2) {
|
||||
results[results.length] = 0x8E;
|
||||
results[results.length] = data[i] + 0x80 & 0xFF;
|
||||
} else if (index === 3) {
|
||||
results[results.length] = 0x8F;
|
||||
results[results.length] = data[i] + 0x80 & 0xFF;
|
||||
results[results.length] = data[++i] + 0x80 & 0xFF;
|
||||
} else {
|
||||
results[results.length] = data[i] & 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.JISToEUCJP = JISToEUCJP;
|
||||
|
||||
/**
|
||||
* SJIS to JIS
|
||||
*/
|
||||
function SJISToJIS(data) {
|
||||
var results = [];
|
||||
var index = 0;
|
||||
var len = data && data.length;
|
||||
var i = 0;
|
||||
var b1, b2;
|
||||
|
||||
var esc = [
|
||||
0x1B, 0x28, 0x42,
|
||||
0x1B, 0x24, 0x42,
|
||||
0x1B, 0x28, 0x49
|
||||
];
|
||||
|
||||
for (; i < len; i++) {
|
||||
b1 = data[i];
|
||||
if (b1 >= 0xA1 && b1 <= 0xDF) {
|
||||
if (index !== 2) {
|
||||
index = 2;
|
||||
results[results.length] = esc[6];
|
||||
results[results.length] = esc[7];
|
||||
results[results.length] = esc[8];
|
||||
}
|
||||
results[results.length] = b1 - 0x80 & 0xFF;
|
||||
} else if (b1 >= 0x80) {
|
||||
if (index !== 1) {
|
||||
index = 1;
|
||||
results[results.length] = esc[3];
|
||||
results[results.length] = esc[4];
|
||||
results[results.length] = esc[5];
|
||||
}
|
||||
|
||||
b1 <<= 1;
|
||||
b2 = data[++i];
|
||||
if (b2 < 0x9F) {
|
||||
if (b1 < 0x13F) {
|
||||
b1 -= 0xE1;
|
||||
} else {
|
||||
b1 -= 0x61;
|
||||
}
|
||||
if (b2 > 0x7E) {
|
||||
b2 -= 0x20;
|
||||
} else {
|
||||
b2 -= 0x1F;
|
||||
}
|
||||
} else {
|
||||
if (b1 < 0x13F) {
|
||||
b1 -= 0xE0;
|
||||
} else {
|
||||
b1 -= 0x60;
|
||||
}
|
||||
b2 -= 0x7E;
|
||||
}
|
||||
results[results.length] = b1 & 0xFF;
|
||||
results[results.length] = b2 & 0xFF;
|
||||
} else {
|
||||
if (index !== 0) {
|
||||
index = 0;
|
||||
results[results.length] = esc[0];
|
||||
results[results.length] = esc[1];
|
||||
results[results.length] = esc[2];
|
||||
}
|
||||
results[results.length] = b1 & 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
if (index !== 0) {
|
||||
results[results.length] = esc[0];
|
||||
results[results.length] = esc[1];
|
||||
results[results.length] = esc[2];
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.SJISToJIS = SJISToJIS;
|
||||
|
||||
/**
|
||||
* SJIS to EUCJP
|
||||
*/
|
||||
function SJISToEUCJP(data) {
|
||||
var results = [];
|
||||
var len = data && data.length;
|
||||
var i = 0;
|
||||
var b1, b2;
|
||||
|
||||
for (; i < len; i++) {
|
||||
b1 = data[i];
|
||||
if (b1 >= 0xA1 && b1 <= 0xDF) {
|
||||
results[results.length] = 0x8E;
|
||||
results[results.length] = b1;
|
||||
} else if (b1 >= 0x81) {
|
||||
b2 = data[++i];
|
||||
b1 <<= 1;
|
||||
if (b2 < 0x9F) {
|
||||
if (b1 < 0x13F) {
|
||||
b1 -= 0x61;
|
||||
} else {
|
||||
b1 -= 0xE1;
|
||||
}
|
||||
|
||||
if (b2 > 0x7E) {
|
||||
b2 += 0x60;
|
||||
} else {
|
||||
b2 += 0x61;
|
||||
}
|
||||
} else {
|
||||
if (b1 < 0x13F) {
|
||||
b1 -= 0x60;
|
||||
} else {
|
||||
b1 -= 0xE0;
|
||||
}
|
||||
b2 += 0x02;
|
||||
}
|
||||
results[results.length] = b1 & 0xFF;
|
||||
results[results.length] = b2 & 0xFF;
|
||||
} else {
|
||||
results[results.length] = b1 & 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.SJISToEUCJP = SJISToEUCJP;
|
||||
|
||||
/**
|
||||
* EUCJP to JIS
|
||||
*/
|
||||
function EUCJPToJIS(data) {
|
||||
var results = [];
|
||||
var index = 0;
|
||||
var len = data && data.length;
|
||||
var i = 0;
|
||||
var b;
|
||||
|
||||
// escape sequence
|
||||
var esc = [
|
||||
0x1B, 0x28, 0x42,
|
||||
0x1B, 0x24, 0x42,
|
||||
0x1B, 0x28, 0x49,
|
||||
0x1B, 0x24, 0x28, 0x44
|
||||
];
|
||||
|
||||
for (; i < len; i++) {
|
||||
b = data[i];
|
||||
if (b === 0x8E) {
|
||||
if (index !== 2) {
|
||||
index = 2;
|
||||
results[results.length] = esc[6];
|
||||
results[results.length] = esc[7];
|
||||
results[results.length] = esc[8];
|
||||
}
|
||||
results[results.length] = data[++i] - 0x80 & 0xFF;
|
||||
} else if (b === 0x8F) {
|
||||
if (index !== 3) {
|
||||
index = 3;
|
||||
results[results.length] = esc[9];
|
||||
results[results.length] = esc[10];
|
||||
results[results.length] = esc[11];
|
||||
results[results.length] = esc[12];
|
||||
}
|
||||
results[results.length] = data[++i] - 0x80 & 0xFF;
|
||||
results[results.length] = data[++i] - 0x80 & 0xFF;
|
||||
} else if (b > 0x8E) {
|
||||
if (index !== 1) {
|
||||
index = 1;
|
||||
results[results.length] = esc[3];
|
||||
results[results.length] = esc[4];
|
||||
results[results.length] = esc[5];
|
||||
}
|
||||
results[results.length] = b - 0x80 & 0xFF;
|
||||
results[results.length] = data[++i] - 0x80 & 0xFF;
|
||||
} else {
|
||||
if (index !== 0) {
|
||||
index = 0;
|
||||
results[results.length] = esc[0];
|
||||
results[results.length] = esc[1];
|
||||
results[results.length] = esc[2];
|
||||
}
|
||||
results[results.length] = b & 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
if (index !== 0) {
|
||||
results[results.length] = esc[0];
|
||||
results[results.length] = esc[1];
|
||||
results[results.length] = esc[2];
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.EUCJPToJIS = EUCJPToJIS;
|
||||
|
||||
/**
|
||||
* EUCJP to SJIS
|
||||
*/
|
||||
function EUCJPToSJIS(data) {
|
||||
var results = [];
|
||||
var len = data && data.length;
|
||||
var i = 0;
|
||||
var b1, b2;
|
||||
|
||||
for (; i < len; i++) {
|
||||
b1 = data[i];
|
||||
if (b1 === 0x8F) {
|
||||
results[results.length] = config.UNKNOWN_CHARACTER;
|
||||
i += 2;
|
||||
} else if (b1 > 0x8E) {
|
||||
b2 = data[++i];
|
||||
if (b1 & 0x01) {
|
||||
b1 >>= 1;
|
||||
if (b1 < 0x6F) {
|
||||
b1 += 0x31;
|
||||
} else {
|
||||
b1 += 0x71;
|
||||
}
|
||||
|
||||
if (b2 > 0xDF) {
|
||||
b2 -= 0x60;
|
||||
} else {
|
||||
b2 -= 0x61;
|
||||
}
|
||||
} else {
|
||||
b1 >>= 1;
|
||||
if (b1 <= 0x6F) {
|
||||
b1 += 0x30;
|
||||
} else {
|
||||
b1 += 0x70;
|
||||
}
|
||||
b2 -= 0x02;
|
||||
}
|
||||
results[results.length] = b1 & 0xFF;
|
||||
results[results.length] = b2 & 0xFF;
|
||||
} else if (b1 === 0x8E) {
|
||||
results[results.length] = data[++i] & 0xFF;
|
||||
} else {
|
||||
results[results.length] = b1 & 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.EUCJPToSJIS = EUCJPToSJIS;
|
||||
|
||||
/**
|
||||
* SJIS To UTF-8
|
||||
*/
|
||||
function SJISToUTF8(data) {
|
||||
config.init_JIS_TO_UTF8_TABLE();
|
||||
|
||||
var results = [];
|
||||
var i = 0;
|
||||
var len = data && data.length;
|
||||
var b, b1, b2, u2, u3, jis, utf8;
|
||||
|
||||
for (; i < len; i++) {
|
||||
b = data[i];
|
||||
if (b >= 0xA1 && b <= 0xDF) {
|
||||
b2 = b - 0x40;
|
||||
u2 = 0xBC | ((b2 >> 6) & 0x03);
|
||||
u3 = 0x80 | (b2 & 0x3F);
|
||||
|
||||
results[results.length] = 0xEF;
|
||||
results[results.length] = u2 & 0xFF;
|
||||
results[results.length] = u3 & 0xFF;
|
||||
} else if (b >= 0x80) {
|
||||
b1 = b << 1;
|
||||
b2 = data[++i];
|
||||
|
||||
if (b2 < 0x9F) {
|
||||
if (b1 < 0x13F) {
|
||||
b1 -= 0xE1;
|
||||
} else {
|
||||
b1 -= 0x61;
|
||||
}
|
||||
|
||||
if (b2 > 0x7E) {
|
||||
b2 -= 0x20;
|
||||
} else {
|
||||
b2 -= 0x1F;
|
||||
}
|
||||
} else {
|
||||
if (b1 < 0x13F) {
|
||||
b1 -= 0xE0;
|
||||
} else {
|
||||
b1 -= 0x60;
|
||||
}
|
||||
b2 -= 0x7E;
|
||||
}
|
||||
|
||||
b1 &= 0xFF;
|
||||
jis = (b1 << 8) + b2;
|
||||
|
||||
utf8 = EncodingTable.JIS_TO_UTF8_TABLE[jis];
|
||||
if (utf8 === void 0) {
|
||||
results[results.length] = config.UNKNOWN_CHARACTER;
|
||||
} else {
|
||||
if (utf8 < 0xFFFF) {
|
||||
results[results.length] = utf8 >> 8 & 0xFF;
|
||||
results[results.length] = utf8 & 0xFF;
|
||||
} else {
|
||||
results[results.length] = utf8 >> 16 & 0xFF;
|
||||
results[results.length] = utf8 >> 8 & 0xFF;
|
||||
results[results.length] = utf8 & 0xFF;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
results[results.length] = data[i] & 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.SJISToUTF8 = SJISToUTF8;
|
||||
|
||||
/**
|
||||
* EUC-JP to UTF-8
|
||||
*/
|
||||
function EUCJPToUTF8(data) {
|
||||
config.init_JIS_TO_UTF8_TABLE();
|
||||
|
||||
var results = [];
|
||||
var i = 0;
|
||||
var len = data && data.length;
|
||||
var b, b2, u2, u3, j2, j3, jis, utf8;
|
||||
|
||||
for (; i < len; i++) {
|
||||
b = data[i];
|
||||
if (b === 0x8E) {
|
||||
b2 = data[++i] - 0x40;
|
||||
u2 = 0xBC | ((b2 >> 6) & 0x03);
|
||||
u3 = 0x80 | (b2 & 0x3F);
|
||||
|
||||
results[results.length] = 0xEF;
|
||||
results[results.length] = u2 & 0xFF;
|
||||
results[results.length] = u3 & 0xFF;
|
||||
} else if (b === 0x8F) {
|
||||
j2 = data[++i] - 0x80;
|
||||
j3 = data[++i] - 0x80;
|
||||
jis = (j2 << 8) + j3;
|
||||
|
||||
utf8 = EncodingTable.JISX0212_TO_UTF8_TABLE[jis];
|
||||
if (utf8 === void 0) {
|
||||
results[results.length] = config.UNKNOWN_CHARACTER;
|
||||
} else {
|
||||
if (utf8 < 0xFFFF) {
|
||||
results[results.length] = utf8 >> 8 & 0xFF;
|
||||
results[results.length] = utf8 & 0xFF;
|
||||
} else {
|
||||
results[results.length] = utf8 >> 16 & 0xFF;
|
||||
results[results.length] = utf8 >> 8 & 0xFF;
|
||||
results[results.length] = utf8 & 0xFF;
|
||||
}
|
||||
}
|
||||
} else if (b >= 0x80) {
|
||||
jis = ((b - 0x80) << 8) + (data[++i] - 0x80);
|
||||
|
||||
utf8 = EncodingTable.JIS_TO_UTF8_TABLE[jis];
|
||||
if (utf8 === void 0) {
|
||||
results[results.length] = config.UNKNOWN_CHARACTER;
|
||||
} else {
|
||||
if (utf8 < 0xFFFF) {
|
||||
results[results.length] = utf8 >> 8 & 0xFF;
|
||||
results[results.length] = utf8 & 0xFF;
|
||||
} else {
|
||||
results[results.length] = utf8 >> 16 & 0xFF;
|
||||
results[results.length] = utf8 >> 8 & 0xFF;
|
||||
results[results.length] = utf8 & 0xFF;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
results[results.length] = data[i] & 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.EUCJPToUTF8 = EUCJPToUTF8;
|
||||
|
||||
/**
|
||||
* JIS to UTF-8
|
||||
*/
|
||||
function JISToUTF8(data) {
|
||||
config.init_JIS_TO_UTF8_TABLE();
|
||||
|
||||
var results = [];
|
||||
var index = 0;
|
||||
var i = 0;
|
||||
var len = data && data.length;
|
||||
var b2, u2, u3, jis, utf8;
|
||||
|
||||
for (; i < len; i++) {
|
||||
while (data[i] === 0x1B) {
|
||||
if ((data[i + 1] === 0x24 && data[i + 2] === 0x42) ||
|
||||
(data[i + 1] === 0x24 && data[i + 2] === 0x40)) {
|
||||
index = 1;
|
||||
} else if (data[i + 1] === 0x28 && data[i + 2] === 0x49) {
|
||||
index = 2;
|
||||
} else if (data[i + 1] === 0x24 && data[i + 2] === 0x28 &&
|
||||
data[i + 3] === 0x44) {
|
||||
index = 3;
|
||||
i++;
|
||||
} else {
|
||||
index = 0;
|
||||
}
|
||||
|
||||
i += 3;
|
||||
if (data[i] === void 0) {
|
||||
return results;
|
||||
}
|
||||
}
|
||||
|
||||
if (index === 1) {
|
||||
jis = (data[i] << 8) + data[++i];
|
||||
|
||||
utf8 = EncodingTable.JIS_TO_UTF8_TABLE[jis];
|
||||
if (utf8 === void 0) {
|
||||
results[results.length] = config.UNKNOWN_CHARACTER;
|
||||
} else {
|
||||
if (utf8 < 0xFFFF) {
|
||||
results[results.length] = utf8 >> 8 & 0xFF;
|
||||
results[results.length] = utf8 & 0xFF;
|
||||
} else {
|
||||
results[results.length] = utf8 >> 16 & 0xFF;
|
||||
results[results.length] = utf8 >> 8 & 0xFF;
|
||||
results[results.length] = utf8 & 0xFF;
|
||||
}
|
||||
}
|
||||
} else if (index === 2) {
|
||||
b2 = data[i] + 0x40;
|
||||
u2 = 0xBC | ((b2 >> 6) & 0x03);
|
||||
u3 = 0x80 | (b2 & 0x3F);
|
||||
|
||||
results[results.length] = 0xEF;
|
||||
results[results.length] = u2 & 0xFF;
|
||||
results[results.length] = u3 & 0xFF;
|
||||
} else if (index === 3) {
|
||||
jis = (data[i] << 8) + data[++i];
|
||||
|
||||
utf8 = EncodingTable.JISX0212_TO_UTF8_TABLE[jis];
|
||||
if (utf8 === void 0) {
|
||||
results[results.length] = config.UNKNOWN_CHARACTER;
|
||||
} else {
|
||||
if (utf8 < 0xFFFF) {
|
||||
results[results.length] = utf8 >> 8 & 0xFF;
|
||||
results[results.length] = utf8 & 0xFF;
|
||||
} else {
|
||||
results[results.length] = utf8 >> 16 & 0xFF;
|
||||
results[results.length] = utf8 >> 8 & 0xFF;
|
||||
results[results.length] = utf8 & 0xFF;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
results[results.length] = data[i] & 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.JISToUTF8 = JISToUTF8;
|
||||
|
||||
/**
|
||||
* UTF-8 to SJIS
|
||||
*/
|
||||
function UTF8ToSJIS(data) {
|
||||
var results = [];
|
||||
var i = 0;
|
||||
var len = data && data.length;
|
||||
var b, b1, b2, utf8, jis;
|
||||
|
||||
for (; i < len; i++) {
|
||||
b = data[i];
|
||||
if (b >= 0x80) {
|
||||
if (b <= 0xDF) {
|
||||
// 2 bytes
|
||||
utf8 = (b << 8) + data[++i];
|
||||
} else {
|
||||
// 3 bytes
|
||||
utf8 = (b << 16) +
|
||||
(data[++i] << 8) +
|
||||
(data[++i] & 0xFF);
|
||||
}
|
||||
|
||||
jis = EncodingTable.UTF8_TO_JIS_TABLE[utf8];
|
||||
if (jis === void 0) {
|
||||
results[results.length] = config.UNKNOWN_CHARACTER;
|
||||
} else {
|
||||
if (jis < 0xFF) {
|
||||
results[results.length] = jis + 0x80;
|
||||
} else {
|
||||
if (jis > 0x10000) {
|
||||
jis -= 0x10000;
|
||||
}
|
||||
|
||||
b1 = jis >> 8;
|
||||
b2 = jis & 0xFF;
|
||||
if (b1 & 0x01) {
|
||||
b1 >>= 1;
|
||||
if (b1 < 0x2F) {
|
||||
b1 += 0x71;
|
||||
} else {
|
||||
b1 -= 0x4F;
|
||||
}
|
||||
|
||||
if (b2 > 0x5F) {
|
||||
b2 += 0x20;
|
||||
} else {
|
||||
b2 += 0x1F;
|
||||
}
|
||||
} else {
|
||||
b1 >>= 1;
|
||||
if (b1 <= 0x2F) {
|
||||
b1 += 0x70;
|
||||
} else {
|
||||
b1 -= 0x50;
|
||||
}
|
||||
b2 += 0x7E;
|
||||
}
|
||||
results[results.length] = b1 & 0xFF;
|
||||
results[results.length] = b2 & 0xFF;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
results[results.length] = data[i] & 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.UTF8ToSJIS = UTF8ToSJIS;
|
||||
|
||||
/**
|
||||
* UTF-8 to EUC-JP
|
||||
*/
|
||||
function UTF8ToEUCJP(data) {
|
||||
var results = [];
|
||||
var i = 0;
|
||||
var len = data && data.length;
|
||||
var b, utf8, jis;
|
||||
|
||||
for (; i < len; i++) {
|
||||
b = data[i];
|
||||
if (b >= 0x80) {
|
||||
if (b <= 0xDF) {
|
||||
utf8 = (data[i++] << 8) + data[i];
|
||||
} else {
|
||||
utf8 = (data[i++] << 16) +
|
||||
(data[i++] << 8) +
|
||||
(data[i] & 0xFF);
|
||||
}
|
||||
|
||||
jis = EncodingTable.UTF8_TO_JIS_TABLE[utf8];
|
||||
if (jis === void 0) {
|
||||
jis = EncodingTable.UTF8_TO_JISX0212_TABLE[utf8];
|
||||
if (jis === void 0) {
|
||||
results[results.length] = config.UNKNOWN_CHARACTER;
|
||||
} else {
|
||||
results[results.length] = 0x8F;
|
||||
results[results.length] = (jis >> 8) - 0x80 & 0xFF;
|
||||
results[results.length] = (jis & 0xFF) - 0x80 & 0xFF;
|
||||
}
|
||||
} else {
|
||||
if (jis > 0x10000) {
|
||||
jis -= 0x10000;
|
||||
}
|
||||
if (jis < 0xFF) {
|
||||
results[results.length] = 0x8E;
|
||||
results[results.length] = jis - 0x80 & 0xFF;
|
||||
} else {
|
||||
results[results.length] = (jis >> 8) - 0x80 & 0xFF;
|
||||
results[results.length] = (jis & 0xFF) - 0x80 & 0xFF;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
results[results.length] = data[i] & 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.UTF8ToEUCJP = UTF8ToEUCJP;
|
||||
|
||||
/**
|
||||
* UTF-8 to JIS
|
||||
*/
|
||||
function UTF8ToJIS(data) {
|
||||
var results = [];
|
||||
var index = 0;
|
||||
var len = data && data.length;
|
||||
var i = 0;
|
||||
var b, utf8, jis;
|
||||
var esc = [
|
||||
0x1B, 0x28, 0x42,
|
||||
0x1B, 0x24, 0x42,
|
||||
0x1B, 0x28, 0x49,
|
||||
0x1B, 0x24, 0x28, 0x44
|
||||
];
|
||||
|
||||
for (; i < len; i++) {
|
||||
b = data[i];
|
||||
if (b < 0x80) {
|
||||
if (index !== 0) {
|
||||
index = 0;
|
||||
results[results.length] = esc[0];
|
||||
results[results.length] = esc[1];
|
||||
results[results.length] = esc[2];
|
||||
}
|
||||
results[results.length] = b & 0xFF;
|
||||
} else {
|
||||
if (b <= 0xDF) {
|
||||
utf8 = (data[i] << 8) + data[++i];
|
||||
} else {
|
||||
utf8 = (data[i] << 16) + (data[++i] << 8) + data[++i];
|
||||
}
|
||||
|
||||
jis = EncodingTable.UTF8_TO_JIS_TABLE[utf8];
|
||||
if (jis === void 0) {
|
||||
jis = EncodingTable.UTF8_TO_JISX0212_TABLE[utf8];
|
||||
if (jis === void 0) {
|
||||
if (index !== 0) {
|
||||
index = 0;
|
||||
results[results.length] = esc[0];
|
||||
results[results.length] = esc[1];
|
||||
results[results.length] = esc[2];
|
||||
}
|
||||
results[results.length] = config.UNKNOWN_CHARACTER;
|
||||
} else {
|
||||
// JIS X 0212:1990
|
||||
if (index !== 3) {
|
||||
index = 3;
|
||||
results[results.length] = esc[9];
|
||||
results[results.length] = esc[10];
|
||||
results[results.length] = esc[11];
|
||||
results[results.length] = esc[12];
|
||||
}
|
||||
results[results.length] = jis >> 8 & 0xFF;
|
||||
results[results.length] = jis & 0xFF;
|
||||
}
|
||||
} else {
|
||||
if (jis > 0x10000) {
|
||||
jis -= 0x10000;
|
||||
}
|
||||
if (jis < 0xFF) {
|
||||
// Halfwidth Katakana
|
||||
if (index !== 2) {
|
||||
index = 2;
|
||||
results[results.length] = esc[6];
|
||||
results[results.length] = esc[7];
|
||||
results[results.length] = esc[8];
|
||||
}
|
||||
results[results.length] = jis & 0xFF;
|
||||
} else {
|
||||
if (index !== 1) {
|
||||
index = 1;
|
||||
results[results.length] = esc[3];
|
||||
results[results.length] = esc[4];
|
||||
results[results.length] = esc[5];
|
||||
}
|
||||
results[results.length] = jis >> 8 & 0xFF;
|
||||
results[results.length] = jis & 0xFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (index !== 0) {
|
||||
results[results.length] = esc[0];
|
||||
results[results.length] = esc[1];
|
||||
results[results.length] = esc[2];
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.UTF8ToJIS = UTF8ToJIS;
|
||||
|
||||
/**
|
||||
* UTF-16 (JavaScript Unicode array) to UTF-8
|
||||
*/
|
||||
function UNICODEToUTF8(data) {
|
||||
var results = [];
|
||||
var i = 0;
|
||||
var len = data && data.length;
|
||||
var c, second;
|
||||
|
||||
for (; i < len; i++) {
|
||||
c = data[i];
|
||||
|
||||
// high surrogate
|
||||
if (c >= 0xD800 && c <= 0xDBFF && i + 1 < len) {
|
||||
second = data[i + 1];
|
||||
// low surrogate
|
||||
if (second >= 0xDC00 && second <= 0xDFFF) {
|
||||
c = (c - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
if (c < 0x80) {
|
||||
results[results.length] = c;
|
||||
} else if (c < 0x800) {
|
||||
results[results.length] = 0xC0 | ((c >> 6) & 0x1F);
|
||||
results[results.length] = 0x80 | (c & 0x3F);
|
||||
} else if (c < 0x10000) {
|
||||
results[results.length] = 0xE0 | ((c >> 12) & 0xF);
|
||||
results[results.length] = 0x80 | ((c >> 6) & 0x3F);
|
||||
results[results.length] = 0x80 | (c & 0x3F);
|
||||
} else if (c < 0x200000) {
|
||||
results[results.length] = 0xF0 | ((c >> 18) & 0xF);
|
||||
results[results.length] = 0x80 | ((c >> 12) & 0x3F);
|
||||
results[results.length] = 0x80 | ((c >> 6) & 0x3F);
|
||||
results[results.length] = 0x80 | (c & 0x3F);
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.UNICODEToUTF8 = UNICODEToUTF8;
|
||||
|
||||
/**
|
||||
* UTF-8 to UTF-16 (JavaScript Unicode array)
|
||||
*/
|
||||
function UTF8ToUNICODE(data) {
|
||||
var results = [];
|
||||
var i = 0;
|
||||
var len = data && data.length;
|
||||
var n, c, c2, c3, c4, code;
|
||||
|
||||
while (i < len) {
|
||||
c = data[i++];
|
||||
n = c >> 4;
|
||||
if (n >= 0 && n <= 7) {
|
||||
// 0xxx xxxx
|
||||
code = c;
|
||||
} else if (n === 12 || n === 13) {
|
||||
// 110x xxxx
|
||||
// 10xx xxxx
|
||||
c2 = data[i++];
|
||||
code = ((c & 0x1F) << 6) | (c2 & 0x3F);
|
||||
} else if (n === 14) {
|
||||
// 1110 xxxx
|
||||
// 10xx xxxx
|
||||
// 10xx xxxx
|
||||
c2 = data[i++];
|
||||
c3 = data[i++];
|
||||
code = ((c & 0x0F) << 12) |
|
||||
((c2 & 0x3F) << 6) |
|
||||
(c3 & 0x3F);
|
||||
} else if (n === 15) {
|
||||
// 1111 0xxx
|
||||
// 10xx xxxx
|
||||
// 10xx xxxx
|
||||
// 10xx xxxx
|
||||
c2 = data[i++];
|
||||
c3 = data[i++];
|
||||
c4 = data[i++];
|
||||
code = ((c & 0x7) << 18) |
|
||||
((c2 & 0x3F) << 12) |
|
||||
((c3 & 0x3F) << 6) |
|
||||
(c4 & 0x3F);
|
||||
}
|
||||
|
||||
if (code <= 0xFFFF) {
|
||||
results[results.length] = code;
|
||||
} else {
|
||||
// Split in surrogate halves
|
||||
code -= 0x10000;
|
||||
results[results.length] = (code >> 10) + 0xD800; // High surrogate
|
||||
results[results.length] = (code % 0x400) + 0xDC00; // Low surrogate
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.UTF8ToUNICODE = UTF8ToUNICODE;
|
||||
|
||||
/**
|
||||
* UTF-16 (JavaScript Unicode array) to UTF-16
|
||||
*
|
||||
* UTF-16BE (big-endian)
|
||||
* Note: this function does not prepend the BOM by default.
|
||||
*
|
||||
* RFC 2781 4.3 Interpreting text labelled as UTF-16
|
||||
* If the first two octets of the text is not 0xFE followed by
|
||||
* 0xFF, and is not 0xFF followed by 0xFE, then the text SHOULD be
|
||||
* interpreted as being big-endian.
|
||||
*
|
||||
* @link https://www.ietf.org/rfc/rfc2781.txt
|
||||
* UTF-16, an encoding of ISO 10646
|
||||
*/
|
||||
function UNICODEToUTF16(data, options) {
|
||||
var results;
|
||||
|
||||
if (options && options.bom) {
|
||||
var optBom = options.bom;
|
||||
if (!util.isString(optBom)) {
|
||||
optBom = 'BE';
|
||||
}
|
||||
|
||||
var bom, utf16;
|
||||
if (optBom.charAt(0).toUpperCase() === 'B') {
|
||||
// Big-endian
|
||||
bom = [0xFE, 0xFF];
|
||||
utf16 = UNICODEToUTF16BE(data);
|
||||
} else {
|
||||
// Little-endian
|
||||
bom = [0xFF, 0xFE];
|
||||
utf16 = UNICODEToUTF16LE(data);
|
||||
}
|
||||
|
||||
results = [];
|
||||
results[0] = bom[0];
|
||||
results[1] = bom[1];
|
||||
|
||||
for (var i = 0, len = utf16.length; i < len; i++) {
|
||||
results[results.length] = utf16[i];
|
||||
}
|
||||
} else {
|
||||
// Without BOM: Convert as BE (SHOULD).
|
||||
results = UNICODEToUTF16BE(data);
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.UNICODEToUTF16 = UNICODEToUTF16;
|
||||
|
||||
/**
|
||||
* UTF-16 (JavaScript Unicode array) to UTF-16BE
|
||||
*
|
||||
* @link https://www.ietf.org/rfc/rfc2781.txt
|
||||
* UTF-16, an encoding of ISO 10646
|
||||
*/
|
||||
function UNICODEToUTF16BE(data) {
|
||||
var results = [];
|
||||
var i = 0;
|
||||
var len = data && data.length;
|
||||
var c;
|
||||
|
||||
while (i < len) {
|
||||
c = data[i++];
|
||||
if (c <= 0xFF) {
|
||||
results[results.length] = 0;
|
||||
results[results.length] = c;
|
||||
} else if (c <= 0xFFFF) {
|
||||
results[results.length] = c >> 8 & 0xFF;
|
||||
results[results.length] = c & 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.UNICODEToUTF16BE = UNICODEToUTF16BE;
|
||||
|
||||
/**
|
||||
* UTF-16 (JavaScript Unicode array) to UTF-16LE
|
||||
*
|
||||
* @link https://www.ietf.org/rfc/rfc2781.txt
|
||||
* UTF-16, an encoding of ISO 10646
|
||||
*/
|
||||
function UNICODEToUTF16LE(data) {
|
||||
var results = [];
|
||||
var i = 0;
|
||||
var len = data && data.length;
|
||||
var c;
|
||||
|
||||
while (i < len) {
|
||||
c = data[i++];
|
||||
if (c <= 0xFF) {
|
||||
results[results.length] = c;
|
||||
results[results.length] = 0;
|
||||
} else if (c <= 0xFFFF) {
|
||||
results[results.length] = c & 0xFF;
|
||||
results[results.length] = c >> 8 & 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.UNICODEToUTF16LE = UNICODEToUTF16LE;
|
||||
|
||||
/**
|
||||
* UTF-16BE to UTF-16 (JavaScript Unicode array)
|
||||
*
|
||||
* @link https://www.ietf.org/rfc/rfc2781.txt
|
||||
* UTF-16, an encoding of ISO 10646
|
||||
*/
|
||||
function UTF16BEToUNICODE(data) {
|
||||
var results = [];
|
||||
var i = 0;
|
||||
var len = data && data.length;
|
||||
var c1, c2;
|
||||
|
||||
if (len >= 2 &&
|
||||
((data[0] === 0xFE && data[1] === 0xFF) ||
|
||||
(data[0] === 0xFF && data[1] === 0xFE))
|
||||
) {
|
||||
i = 2;
|
||||
}
|
||||
|
||||
while (i < len) {
|
||||
c1 = data[i++];
|
||||
c2 = data[i++];
|
||||
if (c1 === 0) {
|
||||
results[results.length] = c2;
|
||||
} else {
|
||||
results[results.length] = ((c1 & 0xFF) << 8) | (c2 & 0xFF);
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.UTF16BEToUNICODE = UTF16BEToUNICODE;
|
||||
|
||||
/**
|
||||
* UTF-16LE to UTF-16 (JavaScript Unicode array)
|
||||
*
|
||||
* @link https://www.ietf.org/rfc/rfc2781.txt
|
||||
* UTF-16, an encoding of ISO 10646
|
||||
*/
|
||||
function UTF16LEToUNICODE(data) {
|
||||
var results = [];
|
||||
var i = 0;
|
||||
var len = data && data.length;
|
||||
var c1, c2;
|
||||
|
||||
if (len >= 2 &&
|
||||
((data[0] === 0xFE && data[1] === 0xFF) ||
|
||||
(data[0] === 0xFF && data[1] === 0xFE))
|
||||
) {
|
||||
i = 2;
|
||||
}
|
||||
|
||||
while (i < len) {
|
||||
c1 = data[i++];
|
||||
c2 = data[i++];
|
||||
if (c2 === 0) {
|
||||
results[results.length] = c1;
|
||||
} else {
|
||||
results[results.length] = ((c2 & 0xFF) << 8) | (c1 & 0xFF);
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.UTF16LEToUNICODE = UTF16LEToUNICODE;
|
||||
|
||||
/**
|
||||
* UTF-16 to UTF-16 (JavaScript Unicode array)
|
||||
*
|
||||
* @link https://www.ietf.org/rfc/rfc2781.txt
|
||||
* UTF-16, an encoding of ISO 10646
|
||||
*/
|
||||
function UTF16ToUNICODE(data) {
|
||||
var results = [];
|
||||
var i = 0;
|
||||
var len = data && data.length;
|
||||
var isLE = false;
|
||||
var first = true;
|
||||
var c1, c2;
|
||||
|
||||
while (i < len) {
|
||||
c1 = data[i++];
|
||||
c2 = data[i++];
|
||||
|
||||
if (first && i === 2) {
|
||||
first = false;
|
||||
if (c1 === 0xFE && c2 === 0xFF) {
|
||||
isLE = false;
|
||||
} else if (c1 === 0xFF && c2 === 0xFE) {
|
||||
// Little-endian
|
||||
isLE = true;
|
||||
} else {
|
||||
isLE = EncodingDetect.isUTF16LE(data);
|
||||
i = 0;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if (isLE) {
|
||||
if (c2 === 0) {
|
||||
results[results.length] = c1;
|
||||
} else {
|
||||
results[results.length] = ((c2 & 0xFF) << 8) | (c1 & 0xFF);
|
||||
}
|
||||
} else {
|
||||
if (c1 === 0) {
|
||||
results[results.length] = c2;
|
||||
} else {
|
||||
results[results.length] = ((c1 & 0xFF) << 8) | (c2 & 0xFF);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.UTF16ToUNICODE = UTF16ToUNICODE;
|
||||
|
||||
/**
|
||||
* UTF-16 to UTF-16BE
|
||||
*/
|
||||
function UTF16ToUTF16BE(data) {
|
||||
var results = [];
|
||||
var i = 0;
|
||||
var len = data && data.length;
|
||||
var isLE = false;
|
||||
var first = true;
|
||||
var c1, c2;
|
||||
|
||||
while (i < len) {
|
||||
c1 = data[i++];
|
||||
c2 = data[i++];
|
||||
|
||||
if (first && i === 2) {
|
||||
first = false;
|
||||
if (c1 === 0xFE && c2 === 0xFF) {
|
||||
isLE = false;
|
||||
} else if (c1 === 0xFF && c2 === 0xFE) {
|
||||
// Little-endian
|
||||
isLE = true;
|
||||
} else {
|
||||
isLE = EncodingDetect.isUTF16LE(data);
|
||||
i = 0;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if (isLE) {
|
||||
results[results.length] = c2;
|
||||
results[results.length] = c1;
|
||||
} else {
|
||||
results[results.length] = c1;
|
||||
results[results.length] = c2;
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.UTF16ToUTF16BE = UTF16ToUTF16BE;
|
||||
|
||||
/**
|
||||
* UTF-16BE to UTF-16
|
||||
*/
|
||||
function UTF16BEToUTF16(data, options) {
|
||||
var isLE = false;
|
||||
var bom;
|
||||
|
||||
if (options && options.bom) {
|
||||
var optBom = options.bom;
|
||||
if (!util.isString(optBom)) {
|
||||
optBom = 'BE';
|
||||
}
|
||||
|
||||
if (optBom.charAt(0).toUpperCase() === 'B') {
|
||||
// Big-endian
|
||||
bom = [0xFE, 0xFF];
|
||||
} else {
|
||||
// Little-endian
|
||||
bom = [0xFF, 0xFE];
|
||||
isLE = true;
|
||||
}
|
||||
}
|
||||
|
||||
var results = [];
|
||||
var len = data && data.length;
|
||||
var i = 0;
|
||||
|
||||
if (len >= 2 &&
|
||||
((data[0] === 0xFE && data[1] === 0xFF) ||
|
||||
(data[0] === 0xFF && data[1] === 0xFE))
|
||||
) {
|
||||
i = 2;
|
||||
}
|
||||
|
||||
if (bom) {
|
||||
results[0] = bom[0];
|
||||
results[1] = bom[1];
|
||||
}
|
||||
|
||||
var c1, c2;
|
||||
while (i < len) {
|
||||
c1 = data[i++];
|
||||
c2 = data[i++];
|
||||
|
||||
if (isLE) {
|
||||
results[results.length] = c2;
|
||||
results[results.length] = c1;
|
||||
} else {
|
||||
results[results.length] = c1;
|
||||
results[results.length] = c2;
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.UTF16BEToUTF16 = UTF16BEToUTF16;
|
||||
|
||||
/**
|
||||
* UTF-16 to UTF-16LE
|
||||
*/
|
||||
function UTF16ToUTF16LE(data) {
|
||||
var results = [];
|
||||
var i = 0;
|
||||
var len = data && data.length;
|
||||
var isLE = false;
|
||||
var first = true;
|
||||
var c1, c2;
|
||||
|
||||
while (i < len) {
|
||||
c1 = data[i++];
|
||||
c2 = data[i++];
|
||||
|
||||
if (first && i === 2) {
|
||||
first = false;
|
||||
if (c1 === 0xFE && c2 === 0xFF) {
|
||||
isLE = false;
|
||||
} else if (c1 === 0xFF && c2 === 0xFE) {
|
||||
// Little-endian
|
||||
isLE = true;
|
||||
} else {
|
||||
isLE = EncodingDetect.isUTF16LE(data);
|
||||
i = 0;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if (isLE) {
|
||||
results[results.length] = c1;
|
||||
results[results.length] = c2;
|
||||
} else {
|
||||
results[results.length] = c2;
|
||||
results[results.length] = c1;
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.UTF16ToUTF16LE = UTF16ToUTF16LE;
|
||||
|
||||
/**
|
||||
* UTF-16LE to UTF-16
|
||||
*/
|
||||
function UTF16LEToUTF16(data, options) {
|
||||
var isLE = false;
|
||||
var bom;
|
||||
|
||||
if (options && options.bom) {
|
||||
var optBom = options.bom;
|
||||
if (!util.isString(optBom)) {
|
||||
optBom = 'BE';
|
||||
}
|
||||
|
||||
if (optBom.charAt(0).toUpperCase() === 'B') {
|
||||
// Big-endian
|
||||
bom = [0xFE, 0xFF];
|
||||
} else {
|
||||
// Little-endian
|
||||
bom = [0xFF, 0xFE];
|
||||
isLE = true;
|
||||
}
|
||||
}
|
||||
|
||||
var results = [];
|
||||
var len = data && data.length;
|
||||
var i = 0;
|
||||
|
||||
if (len >= 2 &&
|
||||
((data[0] === 0xFE && data[1] === 0xFF) ||
|
||||
(data[0] === 0xFF && data[1] === 0xFE))
|
||||
) {
|
||||
i = 2;
|
||||
}
|
||||
|
||||
if (bom) {
|
||||
results[0] = bom[0];
|
||||
results[1] = bom[1];
|
||||
}
|
||||
|
||||
var c1, c2;
|
||||
while (i < len) {
|
||||
c1 = data[i++];
|
||||
c2 = data[i++];
|
||||
|
||||
if (isLE) {
|
||||
results[results.length] = c1;
|
||||
results[results.length] = c2;
|
||||
} else {
|
||||
results[results.length] = c2;
|
||||
results[results.length] = c1;
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.UTF16LEToUTF16 = UTF16LEToUTF16;
|
||||
|
||||
/**
|
||||
* UTF-16BE to UTF-16LE
|
||||
*/
|
||||
function UTF16BEToUTF16LE(data) {
|
||||
var results = [];
|
||||
var i = 0;
|
||||
var len = data && data.length;
|
||||
var c1, c2;
|
||||
|
||||
if (len >= 2 &&
|
||||
((data[0] === 0xFE && data[1] === 0xFF) ||
|
||||
(data[0] === 0xFF && data[1] === 0xFE))
|
||||
) {
|
||||
i = 2;
|
||||
}
|
||||
|
||||
while (i < len) {
|
||||
c1 = data[i++];
|
||||
c2 = data[i++];
|
||||
results[results.length] = c2;
|
||||
results[results.length] = c1;
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
exports.UTF16BEToUTF16LE = UTF16BEToUTF16LE;
|
||||
|
||||
/**
|
||||
* UTF-16LE to UTF-16BE
|
||||
*/
|
||||
function UTF16LEToUTF16BE(data) {
|
||||
return UTF16BEToUTF16LE(data);
|
||||
}
|
||||
exports.UTF16LEToUTF16BE = UTF16LEToUTF16BE;
|
||||
|
||||
/**
|
||||
* UTF-16 (JavaScript Unicode array) to JIS
|
||||
*/
|
||||
function UNICODEToJIS(data) {
|
||||
return UTF8ToJIS(UNICODEToUTF8(data));
|
||||
}
|
||||
exports.UNICODEToJIS = UNICODEToJIS;
|
||||
|
||||
/**
|
||||
* JIS to UTF-16 (JavaScript Unicode array)
|
||||
*/
|
||||
function JISToUNICODE(data) {
|
||||
return UTF8ToUNICODE(JISToUTF8(data));
|
||||
}
|
||||
exports.JISToUNICODE = JISToUNICODE;
|
||||
|
||||
/**
|
||||
* UTF-16 (JavaScript Unicode array) to EUCJP
|
||||
*/
|
||||
function UNICODEToEUCJP(data) {
|
||||
return UTF8ToEUCJP(UNICODEToUTF8(data));
|
||||
}
|
||||
exports.UNICODEToEUCJP = UNICODEToEUCJP;
|
||||
|
||||
/**
|
||||
* EUCJP to UTF-16 (JavaScript Unicode array)
|
||||
*/
|
||||
function EUCJPToUNICODE(data) {
|
||||
return UTF8ToUNICODE(EUCJPToUTF8(data));
|
||||
}
|
||||
exports.EUCJPToUNICODE = EUCJPToUNICODE;
|
||||
|
||||
/**
|
||||
* UTF-16 (JavaScript Unicode array) to SJIS
|
||||
*/
|
||||
function UNICODEToSJIS(data) {
|
||||
return UTF8ToSJIS(UNICODEToUTF8(data));
|
||||
}
|
||||
exports.UNICODEToSJIS = UNICODEToSJIS;
|
||||
|
||||
/**
|
||||
* SJIS to UTF-16 (JavaScript Unicode array)
|
||||
*/
|
||||
function SJISToUNICODE(data) {
|
||||
return UTF8ToUNICODE(SJISToUTF8(data));
|
||||
}
|
||||
exports.SJISToUNICODE = SJISToUNICODE;
|
||||
|
||||
/**
|
||||
* UTF-8 to UTF-16
|
||||
*/
|
||||
function UTF8ToUTF16(data, options) {
|
||||
return UNICODEToUTF16(UTF8ToUNICODE(data), options);
|
||||
}
|
||||
exports.UTF8ToUTF16 = UTF8ToUTF16;
|
||||
|
||||
/**
|
||||
* UTF-16 to UTF-8
|
||||
*/
|
||||
function UTF16ToUTF8(data) {
|
||||
return UNICODEToUTF8(UTF16ToUNICODE(data));
|
||||
}
|
||||
exports.UTF16ToUTF8 = UTF16ToUTF8;
|
||||
|
||||
/**
|
||||
* UTF-8 to UTF-16BE
|
||||
*/
|
||||
function UTF8ToUTF16BE(data) {
|
||||
return UNICODEToUTF16BE(UTF8ToUNICODE(data));
|
||||
}
|
||||
exports.UTF8ToUTF16BE = UTF8ToUTF16BE;
|
||||
|
||||
/**
|
||||
* UTF-16BE to UTF-8
|
||||
*/
|
||||
function UTF16BEToUTF8(data) {
|
||||
return UNICODEToUTF8(UTF16BEToUNICODE(data));
|
||||
}
|
||||
exports.UTF16BEToUTF8 = UTF16BEToUTF8;
|
||||
|
||||
/**
|
||||
* UTF-8 to UTF-16LE
|
||||
*/
|
||||
function UTF8ToUTF16LE(data) {
|
||||
return UNICODEToUTF16LE(UTF8ToUNICODE(data));
|
||||
}
|
||||
exports.UTF8ToUTF16LE = UTF8ToUTF16LE;
|
||||
|
||||
/**
|
||||
* UTF-16LE to UTF-8
|
||||
*/
|
||||
function UTF16LEToUTF8(data) {
|
||||
return UNICODEToUTF8(UTF16LEToUNICODE(data));
|
||||
}
|
||||
exports.UTF16LEToUTF8 = UTF16LEToUTF8;
|
||||
|
||||
/**
|
||||
* JIS to UTF-16
|
||||
*/
|
||||
function JISToUTF16(data, options) {
|
||||
return UTF8ToUTF16(JISToUTF8(data), options);
|
||||
}
|
||||
exports.JISToUTF16 = JISToUTF16;
|
||||
|
||||
/**
|
||||
* UTF-16 to JIS
|
||||
*/
|
||||
function UTF16ToJIS(data) {
|
||||
return UTF8ToJIS(UTF16ToUTF8(data));
|
||||
}
|
||||
exports.UTF16ToJIS = UTF16ToJIS;
|
||||
|
||||
/**
|
||||
* JIS to UTF-16BE
|
||||
*/
|
||||
function JISToUTF16BE(data) {
|
||||
return UTF8ToUTF16BE(JISToUTF8(data));
|
||||
}
|
||||
exports.JISToUTF16BE = JISToUTF16BE;
|
||||
|
||||
/**
|
||||
* UTF-16BE to JIS
|
||||
*/
|
||||
function UTF16BEToJIS(data) {
|
||||
return UTF8ToJIS(UTF16BEToUTF8(data));
|
||||
}
|
||||
exports.UTF16BEToJIS = UTF16BEToJIS;
|
||||
|
||||
/**
|
||||
* JIS to UTF-16LE
|
||||
*/
|
||||
function JISToUTF16LE(data) {
|
||||
return UTF8ToUTF16LE(JISToUTF8(data));
|
||||
}
|
||||
exports.JISToUTF16LE = JISToUTF16LE;
|
||||
|
||||
/**
|
||||
* UTF-16LE to JIS
|
||||
*/
|
||||
function UTF16LEToJIS(data) {
|
||||
return UTF8ToJIS(UTF16LEToUTF8(data));
|
||||
}
|
||||
exports.UTF16LEToJIS = UTF16LEToJIS;
|
||||
|
||||
/**
|
||||
* EUC-JP to UTF-16
|
||||
*/
|
||||
function EUCJPToUTF16(data, options) {
|
||||
return UTF8ToUTF16(EUCJPToUTF8(data), options);
|
||||
}
|
||||
exports.EUCJPToUTF16 = EUCJPToUTF16;
|
||||
|
||||
/**
|
||||
* UTF-16 to EUC-JP
|
||||
*/
|
||||
function UTF16ToEUCJP(data) {
|
||||
return UTF8ToEUCJP(UTF16ToUTF8(data));
|
||||
}
|
||||
exports.UTF16ToEUCJP = UTF16ToEUCJP;
|
||||
|
||||
/**
|
||||
* EUC-JP to UTF-16BE
|
||||
*/
|
||||
function EUCJPToUTF16BE(data) {
|
||||
return UTF8ToUTF16BE(EUCJPToUTF8(data));
|
||||
}
|
||||
exports.EUCJPToUTF16BE = EUCJPToUTF16BE;
|
||||
|
||||
/**
|
||||
* UTF-16BE to EUC-JP
|
||||
*/
|
||||
function UTF16BEToEUCJP(data) {
|
||||
return UTF8ToEUCJP(UTF16BEToUTF8(data));
|
||||
}
|
||||
exports.UTF16BEToEUCJP = UTF16BEToEUCJP;
|
||||
|
||||
/**
|
||||
* EUC-JP to UTF-16LE
|
||||
*/
|
||||
function EUCJPToUTF16LE(data) {
|
||||
return UTF8ToUTF16LE(EUCJPToUTF8(data));
|
||||
}
|
||||
exports.EUCJPToUTF16LE = EUCJPToUTF16LE;
|
||||
|
||||
/**
|
||||
* UTF-16LE to EUC-JP
|
||||
*/
|
||||
function UTF16LEToEUCJP(data) {
|
||||
return UTF8ToEUCJP(UTF16LEToUTF8(data));
|
||||
}
|
||||
exports.UTF16LEToEUCJP = UTF16LEToEUCJP;
|
||||
|
||||
/**
|
||||
* SJIS to UTF-16
|
||||
*/
|
||||
function SJISToUTF16(data, options) {
|
||||
return UTF8ToUTF16(SJISToUTF8(data), options);
|
||||
}
|
||||
exports.SJISToUTF16 = SJISToUTF16;
|
||||
|
||||
/**
|
||||
* UTF-16 to SJIS
|
||||
*/
|
||||
function UTF16ToSJIS(data) {
|
||||
return UTF8ToSJIS(UTF16ToUTF8(data));
|
||||
}
|
||||
exports.UTF16ToSJIS = UTF16ToSJIS;
|
||||
|
||||
/**
|
||||
* SJIS to UTF-16BE
|
||||
*/
|
||||
function SJISToUTF16BE(data) {
|
||||
return UTF8ToUTF16BE(SJISToUTF8(data));
|
||||
}
|
||||
exports.SJISToUTF16BE = SJISToUTF16BE;
|
||||
|
||||
/**
|
||||
* UTF-16BE to SJIS
|
||||
*/
|
||||
function UTF16BEToSJIS(data) {
|
||||
return UTF8ToSJIS(UTF16BEToUTF8(data));
|
||||
}
|
||||
exports.UTF16BEToSJIS = UTF16BEToSJIS;
|
||||
|
||||
/**
|
||||
* SJIS to UTF-16LE
|
||||
*/
|
||||
function SJISToUTF16LE(data) {
|
||||
return UTF8ToUTF16LE(SJISToUTF8(data));
|
||||
}
|
||||
exports.SJISToUTF16LE = SJISToUTF16LE;
|
||||
|
||||
/**
|
||||
* UTF-16LE to SJIS
|
||||
*/
|
||||
function UTF16LEToSJIS(data) {
|
||||
return UTF8ToSJIS(UTF16LEToUTF8(data));
|
||||
}
|
||||
exports.UTF16LEToSJIS = UTF16LEToSJIS;
|
||||
Reference in New Issue
Block a user