version bump 1.5.0
new codepages: - 808 OEM Russian; Cyrillic + Euro symbol - 872 OEM Cyrillic (primarily Russian) + Euro Symbol - 1010 IBM EBCDIC French - 1132 IBM EBCDIC Lao (1132 / 1133 / 1341) - 47451 Atari ST/TT other changes: - updated travis versions for test - miscellaneous adjustments to tooling
This commit is contained in:
parent
9e7fe631db
commit
5aacbbf522
24
.flowconfig
Normal file
24
.flowconfig
Normal file
@ -0,0 +1,24 @@
|
||||
[ignore]
|
||||
.*/node_modules/.*
|
||||
.*/dist/.*
|
||||
.*/test.js
|
||||
|
||||
.*/bits/.*
|
||||
.*/ctest/.*
|
||||
.*/misc/.*
|
||||
.*/codepages/.*
|
||||
|
||||
.*/shim.js
|
||||
.*/prof.js
|
||||
.*/cputils.js
|
||||
.*/cptable.js
|
||||
.*/sbcs.js
|
||||
.*/dbcs.js
|
||||
|
||||
[include]
|
||||
cputils.flow.js
|
||||
|
||||
[libs]
|
||||
misc/flow.js
|
||||
|
||||
[options]
|
@ -1,6 +1,7 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- "5.0"
|
||||
- "6"
|
||||
- "5"
|
||||
- "4.2"
|
||||
- "0.12"
|
||||
- "0.10"
|
||||
|
101
Makefile
101
Makefile
@ -1,62 +1,87 @@
|
||||
SHELL=/bin/bash
|
||||
VOC=voc
|
||||
TARGETS=cptable.js cputils.js cpexcel.js sbcs.js
|
||||
TARGET=cptable.js
|
||||
AUXTARGETS=cputils.js cpexcel.js sbcs.js
|
||||
|
||||
.PHONY: js voc
|
||||
## Main Targets
|
||||
|
||||
.PHONY: all
|
||||
all: voc ## Build library and auxiliary scripts
|
||||
|
||||
.PHONY: voc
|
||||
voc test.js: codepage.md
|
||||
$(VOC) codepage.md
|
||||
|
||||
js: make.sh codepage.md
|
||||
.PHONY: js
|
||||
js: make.sh codepage.md ## Build all output targets
|
||||
bash make.sh <(awk -F, '$$3=="1"' pages.csv) sbcs.js cptable
|
||||
bash make.sh excel.csv cpexcel.js cptable
|
||||
bash make.sh
|
||||
make cputils.js
|
||||
|
||||
.PHONY: init
|
||||
init:
|
||||
bash misc/init.sh
|
||||
cputils.js: %.js : %.flow.js
|
||||
node -e 'process.stdout.write(require("fs").readFileSync("$<","utf8").replace(/^[ \t]*\/\*[:#][^*]*\*\/[ \t]*(\n)?/gm,"").replace(/\/\*[:#][^*]*\*\//gm,""))' > $@
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
clean: ## Remove targets and build artifaats
|
||||
rm -f make.sh .vocrc pages.csv bits/*.js
|
||||
|
||||
.PHONY: dist ## Copy files for distribution
|
||||
dist: $(TARGET) $(AUXTARGETS)
|
||||
cp $(TARGET) $(AUXTARGETS) LICENSE dist/
|
||||
|
||||
## Testing
|
||||
|
||||
.PHONY: test mocha
|
||||
test mocha: test.js
|
||||
mocha -R spec
|
||||
test mocha: test.js $(TARGET) baseline ## Run test suite
|
||||
mocha -R spec -t 20000
|
||||
|
||||
.PHONY: ctest
|
||||
ctest: ## Build browser test (into ctest/ subdirectory)
|
||||
bash ctest/fixtures.sh
|
||||
|
||||
.PHONY: ctestserv
|
||||
ctestserv: ## Start a test server on port 8000
|
||||
@python -mSimpleHTTPServer
|
||||
|
||||
.PHONY: baseline
|
||||
baseline: ## Build test baselines
|
||||
@bash ./misc/make_baseline.sh
|
||||
|
||||
## Code Checking
|
||||
|
||||
.PHONY: lint
|
||||
lint: $(TARGET) $(AUXTARGETS) ## Run jshint and jscs checks
|
||||
@jshint --show-non-errors $(TARGET) $(AUXTARGETS)
|
||||
@jshint --show-non-errors package.json
|
||||
@jshint --show-non-errors --extract=always $(HTMLLINT)
|
||||
@jscs $(TARGET) $(AUXTARGETS)
|
||||
|
||||
.PHONY: flow
|
||||
flow: lint ## Run flow checker
|
||||
@flow check --all --show-all-errors
|
||||
|
||||
.PHONY: cov
|
||||
cov: misc/coverage.html ## Run coverage test
|
||||
|
||||
misc/coverage.html: $(TARGET) test.js
|
||||
mocha --require blanket -R html-cov -t 20000 > $@
|
||||
|
||||
.PHONY: coveralls
|
||||
coveralls: ## Coverage Test + Send to coveralls.io
|
||||
mocha --require blanket --reporter mocha-lcov-reporter -t 20000 | node ./node_modules/coveralls/bin/coveralls.js
|
||||
|
||||
.PHONY: prof
|
||||
prof:
|
||||
cat misc/prof.js test.js > prof.js
|
||||
node --prof prof.js
|
||||
|
||||
.PHONY: lint
|
||||
lint:
|
||||
jshint --show-non-errors $(TARGETS)
|
||||
jscs $(TARGETS)
|
||||
|
||||
.PHONY: ctest
|
||||
ctest:
|
||||
bash ctest/fixtures.sh
|
||||
|
||||
.PHONY: cov cov-spin
|
||||
cov: misc/coverage.html
|
||||
cov-spin:
|
||||
make cov & bash misc/spin.sh $$!
|
||||
.PHONY: help
|
||||
help:
|
||||
@grep -hE '(^[a-zA-Z_-][ a-zA-Z_-]*:.*?|^#[#*])' $(MAKEFILE_LIST) | bash misc/help.sh
|
||||
|
||||
misc/coverage.html: test.js
|
||||
mocha --require blanket -R html-cov > $@
|
||||
|
||||
.PHONY: coveralls coveralls-spin
|
||||
coveralls:
|
||||
mocha --require blanket --reporter mocha-lcov-reporter | ./node_modules/coveralls/bin/coveralls.js
|
||||
|
||||
coveralls-spin:
|
||||
make coveralls & bash misc/spin.sh $$!
|
||||
|
||||
.PHONY: dist
|
||||
dist: dist/cpexcel.full.js dist/cptable.full.js dist/sbcs.full.js
|
||||
cp $(TARGETS) dist/
|
||||
cp LICENSE dist/
|
||||
|
||||
.PHONY: dist/cpexcel.full.js dist/cptable.full.js dist/sbcs.full.js
|
||||
dist/cpexcel.full.js dist/cptable.full.js dist/sbcs.full.js : dist/%.full.js: %.js cputils.js
|
||||
cat $^ > $@
|
||||
#* To show a spinner, append "-spin" to any target e.g. cov-spin
|
||||
%-spin:
|
||||
@make $* & bash misc/spin.sh $$!
|
||||
|
13
NOTES.md
13
NOTES.md
@ -1,15 +1,20 @@
|
||||
# Verifying Codepages
|
||||
|
||||
After installing every language pack in Windows 7, many codepages are available
|
||||
via the .NET System.Text.Encoding class. The MakeEncoding.cs source included with
|
||||
the project generates a full manifest that can be parsed into a mapping table.
|
||||
via the .NET System.Text.Encoding class. The included MakeEncoding.cs program
|
||||
generates a full manifest that can be parsed into a mapping table.
|
||||
|
||||
The included `nls2tbl` script extracts data from the various `C_#####.NLS` files
|
||||
available in the system or system32 directories in various versions of Windows.
|
||||
|
||||
Many codepages are also available in various iconv libraries, but there are some
|
||||
differences. For example, some codepages break ASCII by using the Arabic percent
|
||||
sign ٪ U+066A but other libraries assume they preserve the ASCII space.
|
||||
differences. For example, some codepages use the Arabic percent sign ٪ U+066A
|
||||
instead of the standard ASCII "%".
|
||||
|
||||
## Extended Characters
|
||||
|
||||
No known codepage uses characters from the SMP, so certain code paths are never
|
||||
tested. The coverage will not be 100%
|
||||
|
||||
# Missing Codepages
|
||||
|
||||
|
362
README.md
362
README.md
@ -47,27 +47,33 @@ appropriate codepage scripts were loaded.
|
||||
|
||||
## Usage
|
||||
|
||||
The codepages are indexed by number. To get the unicode character for a given
|
||||
Most codepages are indexed by number. To get the unicode character for a given
|
||||
codepoint, use the `dec` property:
|
||||
|
||||
var unicode_cp10000_255 = cptable[10000].dec[255]; // ˇ
|
||||
```js
|
||||
var unicode_cp10000_255 = cptable[10000].dec[255]; // ˇ
|
||||
```
|
||||
|
||||
To get the codepoint for a given character, use the `enc` property:
|
||||
|
||||
var cp10000_711 = cptable[10000].enc[String.fromCharCode(711)]; // 255
|
||||
```js
|
||||
var cp10000_711 = cptable[10000].enc[String.fromCharCode(711)]; // 255
|
||||
```
|
||||
|
||||
There are a few utilities that deal with strings and buffers:
|
||||
|
||||
var 汇总 = cptable.utils.decode(936, [0xbb,0xe3,0xd7,0xdc]);
|
||||
var buf = cptable.utils.encode(936, 汇总);
|
||||
var sushi= cptable.utils.decode(65001, [0xf0,0x9f,0x8d,0xa3]); // 🍣
|
||||
var sbuf = cptable.utils.encode(65001, sushi);
|
||||
```js
|
||||
var 汇总 = cptable.utils.decode(936, [0xbb,0xe3,0xd7,0xdc]);
|
||||
var buf = cptable.utils.encode(936, 汇总);
|
||||
var sushi= cptable.utils.decode(65001, [0xf0,0x9f,0x8d,0xa3]); // 🍣
|
||||
var sbuf = cptable.utils.encode(65001, sushi);
|
||||
```
|
||||
|
||||
`cptable.utils.encode(CP, data, ofmt)` accepts a String or Array of characters
|
||||
and returns a representation controlled by `ofmt`:
|
||||
|
||||
- Default output is a Buffer (or Array) of bytes (integers between 0 and 255).
|
||||
- If `ofmt == 'str'`, return a String where `o.charCodeAt(i)` is the ith byte
|
||||
- If `ofmt == 'str'`, return a String where `o.charCodeAt(i)` is the `i`-th byte
|
||||
- If `ofmt == 'arr'`, return an Array of bytes
|
||||
|
||||
## Known Excel Codepages
|
||||
@ -79,7 +85,9 @@ needed.
|
||||
|
||||
In node:
|
||||
|
||||
var cptable = require('codepage/dist/cpexcel.full');
|
||||
```js
|
||||
var cptable = require('codepage/dist/cpexcel.full');
|
||||
```
|
||||
|
||||
## Rolling your own script
|
||||
|
||||
@ -87,7 +95,9 @@ The `make.sh` script in the repo can take a manifest and generate JS source.
|
||||
|
||||
Usage:
|
||||
|
||||
bash make.sh path_to_manifest output_file_name JSVAR
|
||||
```bash
|
||||
bash make.sh path_to_manifest output_file_name JSVAR
|
||||
```
|
||||
|
||||
where
|
||||
|
||||
@ -119,171 +129,187 @@ the JS source is `codepage.md`, so building is as simple as `voc codepage.md`.
|
||||
The complete list of hardcoded codepages can be found in the file `pages.csv`.
|
||||
|
||||
Some codepages are easier to implement algorithmically. Since these are
|
||||
hardcoded in utils, there is no corresponding entry (they are "magic")
|
||||
hardcoded in `utils`, there is no corresponding entry (they are "magic").
|
||||
|
||||
| CP# | Information | Description |
|
||||
| --: | :----------: | :---------- |
|
||||
| 37| unicode.org |IBM EBCDIC US-Canada
|
||||
| 437| unicode.org |OEM United States
|
||||
| 500| unicode.org |IBM EBCDIC International
|
||||
| 620| NLS |Mazovia (Polish) MS-DOS
|
||||
| 708|MakeEncoding.cs|Arabic (ASMO 708)
|
||||
| 720|MakeEncoding.cs|Arabic (Transparent ASMO); Arabic (DOS)
|
||||
| 737| unicode.org |OEM Greek (formerly 437G); Greek (DOS)
|
||||
| 775| unicode.org |OEM Baltic; Baltic (DOS)
|
||||
| 850| unicode.org |OEM Multilingual Latin 1; Western European (DOS)
|
||||
| 852| unicode.org |OEM Latin 2; Central European (DOS)
|
||||
| 855| unicode.org |OEM Cyrillic (primarily Russian)
|
||||
| 857| unicode.org |OEM Turkish; Turkish (DOS)
|
||||
| 858|MakeEncoding.cs|OEM Multilingual Latin 1 + Euro symbol
|
||||
| 860| unicode.org |OEM Portuguese; Portuguese (DOS)
|
||||
| 861| unicode.org |OEM Icelandic; Icelandic (DOS)
|
||||
| 862| unicode.org |OEM Hebrew; Hebrew (DOS)
|
||||
| 863| unicode.org |OEM French Canadian; French Canadian (DOS)
|
||||
| 864| unicode.org |OEM Arabic; Arabic (864)
|
||||
| 865| unicode.org |OEM Nordic; Nordic (DOS)
|
||||
| 866| unicode.org |OEM Russian; Cyrillic (DOS)
|
||||
| 869| unicode.org |OEM Modern Greek; Greek, Modern (DOS)
|
||||
| 870|MakeEncoding.cs|IBM EBCDIC Multilingual/ROECE (Latin 2)
|
||||
| 874| unicode.org |Windows Thai
|
||||
| 875| unicode.org |IBM EBCDIC Greek Modern
|
||||
| 895| NLS |Kamenický (Czech) MS-DOS
|
||||
| 932| unicode.org |Japanese Shift-JIS
|
||||
| 936| unicode.org |Simplified Chinese GBK
|
||||
| 949| unicode.org |Korean
|
||||
| 950| unicode.org |Traditional Chinese Big5
|
||||
| 1026| unicode.org |IBM EBCDIC Turkish (Latin 5)
|
||||
| 1047|MakeEncoding.cs|IBM EBCDIC Latin 1/Open System
|
||||
| 1140|MakeEncoding.cs|IBM EBCDIC US-Canada (037 + Euro symbol)
|
||||
| 1141|MakeEncoding.cs|IBM EBCDIC Germany (20273 + Euro symbol)
|
||||
| 1142|MakeEncoding.cs|IBM EBCDIC Denmark-Norway (20277 + Euro symbol)
|
||||
| 1143|MakeEncoding.cs|IBM EBCDIC Finland-Sweden (20278 + Euro symbol)
|
||||
| 1144|MakeEncoding.cs|IBM EBCDIC Italy (20280 + Euro symbol)
|
||||
| 1145|MakeEncoding.cs|IBM EBCDIC Latin America-Spain (20284 + Euro symbol)
|
||||
| 1146|MakeEncoding.cs|IBM EBCDIC United Kingdom (20285 + Euro symbol)
|
||||
| 1147|MakeEncoding.cs|IBM EBCDIC France (20297 + Euro symbol)
|
||||
| 1148|MakeEncoding.cs|IBM EBCDIC International (500 + Euro symbol)
|
||||
| 1149|MakeEncoding.cs|IBM EBCDIC Icelandic (20871 + Euro symbol)
|
||||
| 1200| magic |Unicode UTF-16, little endian (BMP of ISO 10646)
|
||||
| 1201| magic |Unicode UTF-16, big endian
|
||||
| 1250| unicode.org |Windows Central Europe
|
||||
| 1251| unicode.org |Windows Cyrillic
|
||||
| 1252| unicode.org |Windows Latin I
|
||||
| 1253| unicode.org |Windows Greek
|
||||
| 1254| unicode.org |Windows Turkish
|
||||
| 1255| unicode.org |Windows Hebrew
|
||||
| 1256| unicode.org |Windows Arabic
|
||||
| 1257| unicode.org |Windows Baltic
|
||||
| 1258| unicode.org |Windows Vietnam
|
||||
| 1361|MakeEncoding.cs|Korean (Johab)
|
||||
|10000| unicode.org |MAC Roman
|
||||
|10001|MakeEncoding.cs|Japanese (Mac)
|
||||
|10002|MakeEncoding.cs|MAC Traditional Chinese (Big5)
|
||||
|10003|MakeEncoding.cs|Korean (Mac)
|
||||
|10004|MakeEncoding.cs|Arabic (Mac)
|
||||
|10005|MakeEncoding.cs|Hebrew (Mac)
|
||||
|10006| unicode.org |Greek (Mac)
|
||||
|10007| unicode.org |Cyrillic (Mac)
|
||||
|10008|MakeEncoding.cs|MAC Simplified Chinese (GB 2312)
|
||||
|10010|MakeEncoding.cs|Romanian (Mac)
|
||||
|10017|MakeEncoding.cs|Ukrainian (Mac)
|
||||
|10021|MakeEncoding.cs|Thai (Mac)
|
||||
|10029| unicode.org |MAC Latin 2 (Central European)
|
||||
|10079| unicode.org |Icelandic (Mac)
|
||||
|10081| unicode.org |Turkish (Mac)
|
||||
|10082|MakeEncoding.cs|Croatian (Mac)
|
||||
|12000| magic |Unicode UTF-32, little endian byte order
|
||||
|12001| magic |Unicode UTF-32, big endian byte order
|
||||
|20000|MakeEncoding.cs|CNS Taiwan (Chinese Traditional)
|
||||
|20001|MakeEncoding.cs|TCA Taiwan
|
||||
|20002|MakeEncoding.cs|Eten Taiwan (Chinese Traditional)
|
||||
|20003|MakeEncoding.cs|IBM5550 Taiwan
|
||||
|20004|MakeEncoding.cs|TeleText Taiwan
|
||||
|20005|MakeEncoding.cs|Wang Taiwan
|
||||
|20105|MakeEncoding.cs|Western European IA5 (IRV International Alphabet 5) 7-bit
|
||||
|20106|MakeEncoding.cs|IA5 German (7-bit)
|
||||
|20107|MakeEncoding.cs|IA5 Swedish (7-bit)
|
||||
|20108|MakeEncoding.cs|IA5 Norwegian (7-bit)
|
||||
|20127| magic |US-ASCII (7-bit)
|
||||
|20261|MakeEncoding.cs|T.61
|
||||
|20269|MakeEncoding.cs|ISO 6937 Non-Spacing Accent
|
||||
|20273|MakeEncoding.cs|IBM EBCDIC Germany
|
||||
|20277|MakeEncoding.cs|IBM EBCDIC Denmark-Norway
|
||||
|20278|MakeEncoding.cs|IBM EBCDIC Finland-Sweden
|
||||
|20280|MakeEncoding.cs|IBM EBCDIC Italy
|
||||
|20284|MakeEncoding.cs|IBM EBCDIC Latin America-Spain
|
||||
|20285|MakeEncoding.cs|IBM EBCDIC United Kingdom
|
||||
|20290|MakeEncoding.cs|IBM EBCDIC Japanese Katakana Extended
|
||||
|20297|MakeEncoding.cs|IBM EBCDIC France
|
||||
|20420|MakeEncoding.cs|IBM EBCDIC Arabic
|
||||
|20423|MakeEncoding.cs|IBM EBCDIC Greek
|
||||
|20424|MakeEncoding.cs|IBM EBCDIC Hebrew
|
||||
|20833|MakeEncoding.cs|IBM EBCDIC Korean Extended
|
||||
|20838|MakeEncoding.cs|IBM EBCDIC Thai
|
||||
|20866|MakeEncoding.cs|Russian Cyrillic (KOI8-R)
|
||||
|20871|MakeEncoding.cs|IBM EBCDIC Icelandic
|
||||
|20880|MakeEncoding.cs|IBM EBCDIC Cyrillic Russian
|
||||
|20905|MakeEncoding.cs|IBM EBCDIC Turkish
|
||||
|20924|MakeEncoding.cs|IBM EBCDIC Latin 1/Open System (1047 + Euro symbol)
|
||||
|20932|MakeEncoding.cs|Japanese (JIS 0208-1990 and 0212-1990)
|
||||
|20936|MakeEncoding.cs|Simplified Chinese (GB2312-80)
|
||||
|20949|MakeEncoding.cs|Korean Wansung
|
||||
|21025|MakeEncoding.cs|IBM EBCDIC Cyrillic Serbian-Bulgarian
|
||||
|21027| NLS |Extended/Ext Alpha Lowercase
|
||||
|21866|MakeEncoding.cs|Ukrainian Cyrillic (KOI8-U)
|
||||
|28591| unicode.org |ISO 8859-1 Latin 1 (Western European)
|
||||
|28592| unicode.org |ISO 8859-2 Latin 2 (Central European)
|
||||
|28593| unicode.org |ISO 8859-3 Latin 3
|
||||
|28594| unicode.org |ISO 8859-4 Baltic
|
||||
|28595| unicode.org |ISO 8859-5 Cyrillic
|
||||
|28596| unicode.org |ISO 8859-6 Arabic
|
||||
|28597| unicode.org |ISO 8859-7 Greek
|
||||
|28598| unicode.org |ISO 8859-8 Hebrew (ISO-Visual)
|
||||
|28599| unicode.org |ISO 8859-9 Turkish
|
||||
|28600| unicode.org |ISO 8859-10 Latin 6
|
||||
|28601| unicode.org |ISO 8859-11 Latin (Thai)
|
||||
|28603| unicode.org |ISO 8859-13 Latin 7 (Estonian)
|
||||
|28604| unicode.org |ISO 8859-14 Latin 8 (Celtic)
|
||||
|28605| unicode.org |ISO 8859-15 Latin 9
|
||||
|28606| unicode.org |ISO 8859-15 Latin 10
|
||||
|29001|MakeEncoding.cs|Europa 3
|
||||
|38598|MakeEncoding.cs|ISO 8859-8 Hebrew (ISO-Logical)
|
||||
|50220|MakeEncoding.cs|ISO 2022 JIS Japanese with no halfwidth Katakana
|
||||
|50221|MakeEncoding.cs|ISO 2022 JIS Japanese with halfwidth Katakana
|
||||
|50222|MakeEncoding.cs|ISO 2022 Japanese JIS X 0201-1989 (1 byte Kana-SO/SI)
|
||||
|50225|MakeEncoding.cs|ISO 2022 Korean
|
||||
|50227|MakeEncoding.cs|ISO 2022 Simplified Chinese
|
||||
|51932|MakeEncoding.cs|EUC Japanese
|
||||
|51936|MakeEncoding.cs|EUC Simplified Chinese
|
||||
|51949|MakeEncoding.cs|EUC Korean
|
||||
|52936|MakeEncoding.cs|HZ-GB2312 Simplified Chinese
|
||||
|54936|MakeEncoding.cs|GB18030 Simplified Chinese (4 byte)
|
||||
|57002|MakeEncoding.cs|ISCII Devanagari
|
||||
|57003|MakeEncoding.cs|ISCII Bengali
|
||||
|57004|MakeEncoding.cs|ISCII Tamil
|
||||
|57005|MakeEncoding.cs|ISCII Telugu
|
||||
|57006|MakeEncoding.cs|ISCII Assamese
|
||||
|57007|MakeEncoding.cs|ISCII Oriya
|
||||
|57008|MakeEncoding.cs|ISCII Kannada
|
||||
|57009|MakeEncoding.cs|ISCII Malayalam
|
||||
|57010|MakeEncoding.cs|ISCII Gujarati
|
||||
|57011|MakeEncoding.cs|ISCII Punjabi
|
||||
|65000| magic |Unicode (UTF-7)
|
||||
|65001| magic |Unicode (UTF-8)
|
||||
| CP# | Source | Description |
|
||||
|--------:|:-----------:|:-----------------------------------------------------|
|
||||
| ` 37` | unicode.org | IBM EBCDIC US-Canada |
|
||||
| ` 437` | unicode.org | OEM United States |
|
||||
| ` 500` | unicode.org | IBM EBCDIC International |
|
||||
| ` 620` | NLS | Mazovia (Polish) MS-DOS |
|
||||
| ` 708` | Windows 7 | Arabic (ASMO 708) |
|
||||
| ` 720` | Windows 7 | Arabic (Transparent ASMO); Arabic (DOS) |
|
||||
| ` 737` | unicode.org | OEM Greek (formerly 437G); Greek (DOS) |
|
||||
| ` 775` | unicode.org | OEM Baltic; Baltic (DOS) |
|
||||
| ` 808` | unicode.org | OEM Russian; Cyrillic + Euro symbol |
|
||||
| ` 850` | unicode.org | OEM Multilingual Latin 1; Western European (DOS) |
|
||||
| ` 852` | unicode.org | OEM Latin 2; Central European (DOS) |
|
||||
| ` 855` | unicode.org | OEM Cyrillic (primarily Russian) |
|
||||
| ` 857` | unicode.org | OEM Turkish; Turkish (DOS) |
|
||||
| ` 858` | Windows 7 | OEM Multilingual Latin 1 + Euro symbol |
|
||||
| ` 860` | unicode.org | OEM Portuguese; Portuguese (DOS) |
|
||||
| ` 861` | unicode.org | OEM Icelandic; Icelandic (DOS) |
|
||||
| ` 862` | unicode.org | OEM Hebrew; Hebrew (DOS) |
|
||||
| ` 863` | unicode.org | OEM French Canadian; French Canadian (DOS) |
|
||||
| ` 864` | unicode.org | OEM Arabic; Arabic (864) |
|
||||
| ` 865` | unicode.org | OEM Nordic; Nordic (DOS) |
|
||||
| ` 866` | unicode.org | OEM Russian; Cyrillic (DOS) |
|
||||
| ` 869` | unicode.org | OEM Modern Greek; Greek, Modern (DOS) |
|
||||
| ` 870` | Windows 7 | IBM EBCDIC Multilingual/ROECE (Latin 2) |
|
||||
| ` 872` | unicode.org | OEM Cyrillic (primarily Russian) + Euro Symbol |
|
||||
| ` 874` | unicode.org | Windows Thai |
|
||||
| ` 875` | unicode.org | IBM EBCDIC Greek Modern |
|
||||
| ` 895` | NLS | Kamenický (Czech) MS-DOS |
|
||||
| ` 932` | unicode.org | Japanese Shift-JIS |
|
||||
| ` 936` | unicode.org | Simplified Chinese GBK |
|
||||
| ` 949` | unicode.org | Korean |
|
||||
| ` 950` | unicode.org | Traditional Chinese Big5 |
|
||||
| ` 1010` | IBM | IBM EBCDIC French |
|
||||
| ` 1026` | unicode.org | IBM EBCDIC Turkish (Latin 5) |
|
||||
| ` 1047` | Windows 7 | IBM EBCDIC Latin 1/Open System |
|
||||
| ` 1132` | IBM | IBM EBCDIC Lao (1132 / 1133 / 1341) |
|
||||
| ` 1140` | Windows 7 | IBM EBCDIC US-Canada (037 + Euro symbol) |
|
||||
| ` 1141` | Windows 7 | IBM EBCDIC Germany (20273 + Euro symbol) |
|
||||
| ` 1142` | Windows 7 | IBM EBCDIC Denmark-Norway (20277 + Euro symbol) |
|
||||
| ` 1143` | Windows 7 | IBM EBCDIC Finland-Sweden (20278 + Euro symbol) |
|
||||
| ` 1144` | Windows 7 | IBM EBCDIC Italy (20280 + Euro symbol) |
|
||||
| ` 1145` | Windows 7 | IBM EBCDIC Latin America-Spain (20284 + Euro symbol) |
|
||||
| ` 1146` | Windows 7 | IBM EBCDIC United Kingdom (20285 + Euro symbol) |
|
||||
| ` 1147` | Windows 7 | IBM EBCDIC France (20297 + Euro symbol) |
|
||||
| ` 1148` | Windows 7 | IBM EBCDIC International (500 + Euro symbol) |
|
||||
| ` 1149` | Windows 7 | IBM EBCDIC Icelandic (20871 + Euro symbol) |
|
||||
| ` 1200` | magic | Unicode UTF-16, little endian (BMP of ISO 10646) |
|
||||
| ` 1201` | magic | Unicode UTF-16, big endian |
|
||||
| ` 1250` | unicode.org | Windows Central Europe |
|
||||
| ` 1251` | unicode.org | Windows Cyrillic |
|
||||
| ` 1252` | unicode.org | Windows Latin I |
|
||||
| ` 1253` | unicode.org | Windows Greek |
|
||||
| ` 1254` | unicode.org | Windows Turkish |
|
||||
| ` 1255` | unicode.org | Windows Hebrew |
|
||||
| ` 1256` | unicode.org | Windows Arabic |
|
||||
| ` 1257` | unicode.org | Windows Baltic |
|
||||
| ` 1258` | unicode.org | Windows Vietnam |
|
||||
| ` 1361` | Windows 7 | Korean (Johab) |
|
||||
| `10000` | unicode.org | MAC Roman |
|
||||
| `10001` | Windows 7 | Japanese (Mac) |
|
||||
| `10002` | Windows 7 | MAC Traditional Chinese (Big5) |
|
||||
| `10003` | Windows 7 | Korean (Mac) |
|
||||
| `10004` | Windows 7 | Arabic (Mac) |
|
||||
| `10005` | Windows 7 | Hebrew (Mac) |
|
||||
| `10006` | unicode.org | Greek (Mac) |
|
||||
| `10007` | unicode.org | Cyrillic (Mac) |
|
||||
| `10008` | Windows 7 | MAC Simplified Chinese (GB 2312) |
|
||||
| `10010` | Windows 7 | Romanian (Mac) |
|
||||
| `10017` | Windows 7 | Ukrainian (Mac) |
|
||||
| `10021` | Windows 7 | Thai (Mac) |
|
||||
| `10029` | unicode.org | MAC Latin 2 (Central European) |
|
||||
| `10079` | unicode.org | Icelandic (Mac) |
|
||||
| `10081` | unicode.org | Turkish (Mac) |
|
||||
| `10082` | Windows 7 | Croatian (Mac) |
|
||||
| `12000` | magic | Unicode UTF-32, little endian byte order |
|
||||
| `12001` | magic | Unicode UTF-32, big endian byte order |
|
||||
| `20000` | Windows 7 | CNS Taiwan (Chinese Traditional) |
|
||||
| `20001` | Windows 7 | TCA Taiwan |
|
||||
| `20002` | Windows 7 | Eten Taiwan (Chinese Traditional) |
|
||||
| `20003` | Windows 7 | IBM5550 Taiwan |
|
||||
| `20004` | Windows 7 | TeleText Taiwan |
|
||||
| `20005` | Windows 7 | Wang Taiwan |
|
||||
| `20105` | Windows 7 | Western European IA5 (IRV International Alphabet 5) |
|
||||
| `20106` | Windows 7 | IA5 German (7-bit) |
|
||||
| `20107` | Windows 7 | IA5 Swedish (7-bit) |
|
||||
| `20108` | Windows 7 | IA5 Norwegian (7-bit) |
|
||||
| `20127` | magic | US-ASCII (7-bit) |
|
||||
| `20261` | Windows 7 | T.61 |
|
||||
| `20269` | Windows 7 | ISO 6937 Non-Spacing Accent |
|
||||
| `20273` | Windows 7 | IBM EBCDIC Germany |
|
||||
| `20277` | Windows 7 | IBM EBCDIC Denmark-Norway |
|
||||
| `20278` | Windows 7 | IBM EBCDIC Finland-Sweden |
|
||||
| `20280` | Windows 7 | IBM EBCDIC Italy |
|
||||
| `20284` | Windows 7 | IBM EBCDIC Latin America-Spain |
|
||||
| `20285` | Windows 7 | IBM EBCDIC United Kingdom |
|
||||
| `20290` | Windows 7 | IBM EBCDIC Japanese Katakana Extended |
|
||||
| `20297` | Windows 7 | IBM EBCDIC France |
|
||||
| `20420` | Windows 7 | IBM EBCDIC Arabic |
|
||||
| `20423` | Windows 7 | IBM EBCDIC Greek |
|
||||
| `20424` | Windows 7 | IBM EBCDIC Hebrew |
|
||||
| `20833` | Windows 7 | IBM EBCDIC Korean Extended |
|
||||
| `20838` | Windows 7 | IBM EBCDIC Thai |
|
||||
| `20866` | Windows 7 | Russian Cyrillic (KOI8-R) |
|
||||
| `20871` | Windows 7 | IBM EBCDIC Icelandic |
|
||||
| `20880` | Windows 7 | IBM EBCDIC Cyrillic Russian |
|
||||
| `20905` | Windows 7 | IBM EBCDIC Turkish |
|
||||
| `20924` | Windows 7 | IBM EBCDIC Latin 1/Open System (1047 + Euro symbol) |
|
||||
| `20932` | Windows 7 | Japanese (JIS 0208-1990 and 0212-1990) |
|
||||
| `20936` | Windows 7 | Simplified Chinese (GB2312-80) |
|
||||
| `20949` | Windows 7 | Korean Wansung |
|
||||
| `21025` | Windows 7 | IBM EBCDIC Cyrillic Serbian-Bulgarian |
|
||||
| `21027` | NLS | Extended/Ext Alpha Lowercase |
|
||||
| `21866` | Windows 7 | Ukrainian Cyrillic (KOI8-U) |
|
||||
| `28591` | unicode.org | ISO 8859-1 Latin 1 (Western European) |
|
||||
| `28592` | unicode.org | ISO 8859-2 Latin 2 (Central European) |
|
||||
| `28593` | unicode.org | ISO 8859-3 Latin 3 |
|
||||
| `28594` | unicode.org | ISO 8859-4 Baltic |
|
||||
| `28595` | unicode.org | ISO 8859-5 Cyrillic |
|
||||
| `28596` | unicode.org | ISO 8859-6 Arabic |
|
||||
| `28597` | unicode.org | ISO 8859-7 Greek |
|
||||
| `28598` | unicode.org | ISO 8859-8 Hebrew (ISO-Visual) |
|
||||
| `28599` | unicode.org | ISO 8859-9 Turkish |
|
||||
| `28600` | unicode.org | ISO 8859-10 Latin 6 |
|
||||
| `28601` | unicode.org | ISO 8859-11 Latin (Thai) |
|
||||
| `28603` | unicode.org | ISO 8859-13 Latin 7 (Estonian) |
|
||||
| `28604` | unicode.org | ISO 8859-14 Latin 8 (Celtic) |
|
||||
| `28605` | unicode.org | ISO 8859-15 Latin 9 |
|
||||
| `28606` | unicode.org | ISO 8859-15 Latin 10 |
|
||||
| `29001` | Windows 7 | Europa 3 |
|
||||
| `38598` | Windows 7 | ISO 8859-8 Hebrew (ISO-Logical) |
|
||||
| `47451` | unicode.org | Atari ST/TT |
|
||||
| `50220` | Windows 7 | ISO 2022 JIS Japanese with no halfwidth Katakana |
|
||||
| `50221` | Windows 7 | ISO 2022 JIS Japanese with halfwidth Katakana |
|
||||
| `50222` | Windows 7 | ISO 2022 Japanese JIS X 0201-1989 (1 byte Kana-SO/SI)|
|
||||
| `50225` | Windows 7 | ISO 2022 Korean |
|
||||
| `50227` | Windows 7 | ISO 2022 Simplified Chinese |
|
||||
| `51932` | Windows 7 | EUC Japanese |
|
||||
| `51936` | Windows 7 | EUC Simplified Chinese |
|
||||
| `51949` | Windows 7 | EUC Korean |
|
||||
| `52936` | Windows 7 | HZ-GB2312 Simplified Chinese |
|
||||
| `54936` | Windows 7 | GB18030 Simplified Chinese (4 byte) |
|
||||
| `57002` | Windows 7 | ISCII Devanagari |
|
||||
| `57003` | Windows 7 | ISCII Bengali |
|
||||
| `57004` | Windows 7 | ISCII Tamil |
|
||||
| `57005` | Windows 7 | ISCII Telugu |
|
||||
| `57006` | Windows 7 | ISCII Assamese |
|
||||
| `57007` | Windows 7 | ISCII Oriya |
|
||||
| `57008` | Windows 7 | ISCII Kannada |
|
||||
| `57009` | Windows 7 | ISCII Malayalam |
|
||||
| `57010` | Windows 7 | ISCII Gujarati |
|
||||
| `57011` | Windows 7 | ISCII Punjabi |
|
||||
| `65000` | magic | Unicode (UTF-7) |
|
||||
| `65001` | magic | Unicode (UTF-8) |
|
||||
|
||||
Note that MakeEncoding.cs deviates from unicode.org for some codepages. In the
|
||||
case of direct conflicts, unicode.org takes precedence. In cases where the
|
||||
unicode.org listing does not prescribe a value, MakeEncoding.cs value is used.
|
||||
`unicode.org` refers to the Unicode Consortium Public Mappings, a database of
|
||||
various mappings between unicode characters and respective character sets. The
|
||||
tables are processed by a few scripts in the build process.
|
||||
|
||||
NLS refers to the National Language Support files supplied in various versions of
|
||||
Windows. In older versions of Windows (e.g. Windows 98) these files followed the
|
||||
pattern `CP_#.NLS`, but newer versions use the pattern `C_#.NLS`.
|
||||
`IBM` refers to the IBM coded character set database. Even though IBM uses a
|
||||
different numbering scheme from Windows, the IBM numbers are used when there is
|
||||
no conflict. The tables are manually generated from the symbol PDFs.
|
||||
|
||||
`Windows 7` refers to direct inspection of Windows 7 machines using .NET class
|
||||
`System.Text.Encoding`. The enclosed `MakeEncoding.cs` C# program brute-forces
|
||||
code pages. MakeEncoding.cs deviates from unicode.org in some cases. When they
|
||||
map a given code to different characters, unicode.org value is used. When
|
||||
unicode.org does not prescribe a value, MakeEncoding.cs value is used.
|
||||
|
||||
`NLS` refers to the National Language Support files supplied in various versions
|
||||
of Windows. In older versions of Windows (e.g. Windows 98) these files followed
|
||||
the name pattern `CP_#.NLS`, but newer versions use the name pattern `C_#.NLS`.
|
||||
|
||||
## Sources
|
||||
|
||||
- [Unicode Consortium Public Mappings](http://www.unicode.org/Public/MAPPINGS/)
|
||||
- [Code Page Enumeration](http://msdn.microsoft.com/en-us/library/cc195051.aspx)
|
||||
- [Code Page Identifiers](http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756.aspx)
|
||||
- [Windows Code Page Enumeration](http://msdn.microsoft.com/en-us/library/cc195051.aspx)
|
||||
- [Windows Code Page Identifiers](http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756.aspx)
|
||||
- [IBM Coded Character Sets](https://www-01.ibm.com/software/globalization/ccsid/ccsid_registered.html)
|
||||
|
||||
## Badges
|
||||
|
||||
|
2
bits/1010.js
Normal file
2
bits/1010.js
Normal file
@ -0,0 +1,2 @@
|
||||
if(typeof cptable === 'undefined') cptable = {};
|
||||
cptable[1010] = (function(){ var d = "<22>\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"£$%&’()*+,-./0123456789:;<=>?àABCDEFGHIJKLMNOPQRSTUVWXYZ°ç§ˆ_µabcdefghijklmnopqrstuvwxyzéùè¨<C3A8><C2A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
2
bits/1132.js
Normal file
2
bits/1132.js
Normal file
@ -0,0 +1,2 @@
|
||||
if(typeof cptable === 'undefined') cptable = {};
|
||||
cptable[1132] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ<E0BAAD><E0BAAE><EFBFBD>ຯະາຳິີຶືຸູຼັົຽ<E0BABB><E0BABD><EFBFBD>ເແໂໃໄ່້໊໋໌ໍໆ<E0BB8D>ໜໝ₭<E0BB9D><E282AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>໐໑໒໓໔໕໖໗໘໙<E0BB98><E0BB99>¢¬¦ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
2
bits/47451.js
Normal file
2
bits/47451.js
Normal file
@ -0,0 +1,2 @@
|
||||
if(typeof cptable === 'undefined') cptable = {};
|
||||
cptable[47451] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥ßƒáíóúñѪº¿⌐¬½¼¡«»ãõØøœŒÀÃÕ¨´†¶©®™ijIJאבגדהוזחטיכלמנסעפצקרשתןךםףץ§∧∞αβΓπΣσµτΦΘΩδ∮φ∈∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²³¯", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
2
bits/808.js
Normal file
2
bits/808.js
Normal file
@ -0,0 +1,2 @@
|
||||
if(typeof cptable === 'undefined') cptable = {};
|
||||
cptable[808] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
2
bits/872.js
Normal file
2
bits/872.js
Normal file
@ -0,0 +1,2 @@
|
||||
if(typeof cptable === 'undefined') cptable = {};
|
||||
cptable[872] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬€лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№ыЫзЗшШэЭщЩчЧ§■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
29
codepage.md
29
codepage.md
@ -36,6 +36,7 @@ The fields of the pages.csv manifest are `codepage,url,bytes` (SBCS=1, DBCS=2)
|
||||
1256,http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1256.TXT,1
|
||||
1257,http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1257.TXT,1
|
||||
1258,http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1258.TXT,1
|
||||
47451,http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/ATARIST.TXT,1
|
||||
```
|
||||
|
||||
Note that the Windows rendering is used for the Mac code pages. The primary
|
||||
@ -165,9 +166,13 @@ The following codepages are available in .NET on Windows:
|
||||
```>pages.csv
|
||||
708,,1
|
||||
720,,1
|
||||
808,,1
|
||||
858,,1
|
||||
870,,1
|
||||
872,,1
|
||||
1010,,1
|
||||
1047,,1
|
||||
1132,,1
|
||||
1140,,1
|
||||
1141,,1
|
||||
1142,,1
|
||||
@ -259,8 +264,6 @@ The following codepages are dependencies for Visual FoxPro:
|
||||
895,,1
|
||||
```
|
||||
|
||||
The known missing codepages are enumerated in the README.
|
||||
|
||||
## Building Notes
|
||||
|
||||
The script `make.sh` (described later) will get these files and massage the data
|
||||
@ -469,6 +472,7 @@ describe('README', function() {
|
||||
assert.equal(cp10000_711, 255);
|
||||
|
||||
var b1 = [0xbb,0xe3,0xd7,0xdc];
|
||||
var s1 = b1.map(function(x) { return String.fromCharCode(x); }).join("");
|
||||
var 汇总 = cptable.utils.decode(936, b1);
|
||||
var buf = cptable.utils.encode(936, 汇总);
|
||||
assert.equal(汇总,"汇总");
|
||||
@ -570,7 +574,7 @@ describe('entry conditions', function() {
|
||||
c(cp,i,'str');
|
||||
};
|
||||
describe('encode', function() {
|
||||
it('CP 1252 : sbcs', function() { chken(1252,"foobar"); });
|
||||
it('CP 1252 : sbcs', function() { chken(1252,"foo•bþr"); });
|
||||
it('CP 708 : sbcs', function() { chken(708,"ت and ث smiley faces");});
|
||||
it('CP 936 : dbcs', function() { chken(936, "这是中文字符测试");});
|
||||
});
|
||||
@ -616,6 +620,10 @@ function testfile(f,cp,type,skip) {
|
||||
z = cptable.utils.encode(cp, a);
|
||||
if(z.length != d.length) throw new Error(f + " " + JSON.stringify(z) + " != " + JSON.stringify(d) + " : " + z.length + " " + d.length);
|
||||
for(var i = 0; i != d.length; ++i) if(d[i] !== z[i]) throw new Error("" + i + " " + d[i] + "!=" + z[i]);
|
||||
if(f.indexOf("cptable.js") == -1) {
|
||||
cptable.utils.encode(cp, d, 'str');
|
||||
cptable.utils.encode(cp, d, 'arr');
|
||||
}
|
||||
}
|
||||
cptable.utils.cache.encache();
|
||||
chk(cp);
|
||||
@ -680,6 +688,12 @@ Object.keys(m).forEach(function(t){if(t != 16969) describe(m[t], function() {
|
||||
if(t != 65000) cmp(x,z);
|
||||
else { assert.equal(y, cptable.utils.decode(t, z)); }
|
||||
cptable.utils.cache.encache();
|
||||
cptable.utils.encode(t, y, 'str');
|
||||
cptable.utils.encode(t, y, 'arr');
|
||||
cptable.utils.cache.decache();
|
||||
cptable.utils.encode(t, y, 'str');
|
||||
cptable.utils.encode(t, y, 'arr');
|
||||
cptable.utils.cache.encache();
|
||||
}
|
||||
: null);
|
||||
it("should process README.md." + m[t], fs.existsSync('./misc/README.md.' + m[t]) ?
|
||||
@ -721,6 +735,11 @@ describe('failures', function() {
|
||||
it('should fail when presented with invalid char codes', function() {
|
||||
assert.throws(function(){cptable.utils.cache.decache(); return cptable.utils.encode(20127, [String.fromCharCode(0xAA)]);});
|
||||
});
|
||||
it('should fail to propagate UTF8 BOM in UTF7', function() {
|
||||
["+/v8-abc", "+/v9"].forEach(function(m) { assert.throws(function() {
|
||||
assert.equal(m, cptable.utils.encode(65000, cptable.utils.decode(65000, m)));
|
||||
}); });
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
@ -729,7 +748,7 @@ describe('failures', function() {
|
||||
```json>package.json
|
||||
{
|
||||
"name": "codepage",
|
||||
"version": "1.4.0",
|
||||
"version": "1.5.0",
|
||||
"author": "SheetJS",
|
||||
"description": "pure-JS library to handle codepages",
|
||||
"keywords": [ "codepage", "iconv", "convert", "strings" ],
|
||||
@ -762,7 +781,7 @@ describe('failures', function() {
|
||||
},
|
||||
"config": {
|
||||
"blanket": {
|
||||
"pattern": "[cptable.js,cputils.js,cpexcel.js]"
|
||||
"pattern": "[cputils.js]"
|
||||
}
|
||||
},
|
||||
"bugs": { "url": "https://github.com/SheetJS/js-codepage/issues" },
|
||||
|
126
codepages/1010.TBL
Normal file
126
codepages/1010.TBL
Normal file
@ -0,0 +1,126 @@
|
||||
0x01 0x0001
|
||||
0x02 0x0002
|
||||
0x03 0x0003
|
||||
0x04 0x0004
|
||||
0x05 0x0005
|
||||
0x06 0x0006
|
||||
0x07 0x0007
|
||||
0x08 0x0008
|
||||
0x09 0x0009
|
||||
0x0a 0x000a
|
||||
0x0b 0x000b
|
||||
0x0c 0x000c
|
||||
0x0d 0x000d
|
||||
0x0e 0x000e
|
||||
0x0f 0x000f
|
||||
0x10 0x0010
|
||||
0x11 0x0011
|
||||
0x12 0x0012
|
||||
0x13 0x0013
|
||||
0x14 0x0014
|
||||
0x15 0x0015
|
||||
0x16 0x0016
|
||||
0x17 0x0017
|
||||
0x18 0x0018
|
||||
0x19 0x0019
|
||||
0x1a 0x001a
|
||||
0x1b 0x001b
|
||||
0x1c 0x001c
|
||||
0x1d 0x001d
|
||||
0x1e 0x001e
|
||||
0x1f 0x001f
|
||||
0x20 0x0020
|
||||
0x21 0x0021
|
||||
0x22 0x0022
|
||||
0x23 0x00A3
|
||||
0x24 0x0024
|
||||
0x25 0x0025
|
||||
0x26 0x0026
|
||||
0x27 0x2019
|
||||
0x28 0x0028
|
||||
0x29 0x0029
|
||||
0x2a 0x002a
|
||||
0x2b 0x002b
|
||||
0x2c 0x002c
|
||||
0x2d 0x002d
|
||||
0x2e 0x002e
|
||||
0x2f 0x002f
|
||||
0x30 0x0030
|
||||
0x31 0x0031
|
||||
0x32 0x0032
|
||||
0x33 0x0033
|
||||
0x34 0x0034
|
||||
0x35 0x0035
|
||||
0x36 0x0036
|
||||
0x37 0x0037
|
||||
0x38 0x0038
|
||||
0x39 0x0039
|
||||
0x3a 0x003a
|
||||
0x3b 0x003b
|
||||
0x3c 0x003c
|
||||
0x3d 0x003d
|
||||
0x3e 0x003e
|
||||
0x3f 0x003f
|
||||
0x40 0x00e0
|
||||
0x41 0x0041
|
||||
0x42 0x0042
|
||||
0x43 0x0043
|
||||
0x44 0x0044
|
||||
0x45 0x0045
|
||||
0x46 0x0046
|
||||
0x47 0x0047
|
||||
0x48 0x0048
|
||||
0x49 0x0049
|
||||
0x4a 0x004a
|
||||
0x4b 0x004b
|
||||
0x4c 0x004c
|
||||
0x4d 0x004d
|
||||
0x4e 0x004e
|
||||
0x4f 0x004f
|
||||
0x50 0x0050
|
||||
0x51 0x0051
|
||||
0x52 0x0052
|
||||
0x53 0x0053
|
||||
0x54 0x0054
|
||||
0x55 0x0055
|
||||
0x56 0x0056
|
||||
0x57 0x0057
|
||||
0x58 0x0058
|
||||
0x59 0x0059
|
||||
0x5a 0x005a
|
||||
0x5b 0x00b0
|
||||
0x5c 0x00e7
|
||||
0x5d 0x00a7
|
||||
0x5e 0x02c6
|
||||
0x5f 0x005f
|
||||
0x60 0x00b5
|
||||
0x61 0x0061
|
||||
0x62 0x0062
|
||||
0x63 0x0063
|
||||
0x64 0x0064
|
||||
0x65 0x0065
|
||||
0x66 0x0066
|
||||
0x67 0x0067
|
||||
0x68 0x0068
|
||||
0x69 0x0069
|
||||
0x6a 0x006a
|
||||
0x6b 0x006b
|
||||
0x6c 0x006c
|
||||
0x6d 0x006d
|
||||
0x6e 0x006e
|
||||
0x6f 0x006f
|
||||
0x70 0x0070
|
||||
0x71 0x0071
|
||||
0x72 0x0072
|
||||
0x73 0x0073
|
||||
0x74 0x0074
|
||||
0x75 0x0075
|
||||
0x76 0x0076
|
||||
0x77 0x0077
|
||||
0x78 0x0078
|
||||
0x79 0x0079
|
||||
0x7a 0x007a
|
||||
0x7b 0x00e9
|
||||
0x7c 0x00f9
|
||||
0x7d 0x00e8
|
||||
0x7e 0x00a8
|
198
codepages/1132.TBL
Normal file
198
codepages/1132.TBL
Normal file
@ -0,0 +1,198 @@
|
||||
0x00 0x0000
|
||||
0x01 0x0001
|
||||
0x02 0x0002
|
||||
0x03 0x0003
|
||||
0x04 0x0004
|
||||
0x05 0x0005
|
||||
0x06 0x0006
|
||||
0x07 0x0007
|
||||
0x08 0x0008
|
||||
0x09 0x0009
|
||||
0x0a 0x000a
|
||||
0x0b 0x000b
|
||||
0x0c 0x000c
|
||||
0x0d 0x000d
|
||||
0x0e 0x000e
|
||||
0x0f 0x000f
|
||||
0x10 0x0010
|
||||
0x11 0x0011
|
||||
0x12 0x0012
|
||||
0x13 0x0013
|
||||
0x14 0x0014
|
||||
0x15 0x0015
|
||||
0x16 0x0016
|
||||
0x17 0x0017
|
||||
0x18 0x0018
|
||||
0x19 0x0019
|
||||
0x1a 0x001a
|
||||
0x1b 0x001b
|
||||
0x1c 0x001c
|
||||
0x1d 0x001d
|
||||
0x1e 0x001e
|
||||
0x1f 0x001f
|
||||
0x20 0x0020
|
||||
0x21 0x0021
|
||||
0x22 0x0022
|
||||
0x23 0x0023
|
||||
0x24 0x0024
|
||||
0x25 0x0025
|
||||
0x26 0x0026
|
||||
0x27 0x0027
|
||||
0x28 0x0028
|
||||
0x29 0x0029
|
||||
0x2a 0x002a
|
||||
0x2b 0x002b
|
||||
0x2c 0x002c
|
||||
0x2d 0x002d
|
||||
0x2e 0x002e
|
||||
0x2f 0x002f
|
||||
0x30 0x0030
|
||||
0x31 0x0031
|
||||
0x32 0x0032
|
||||
0x33 0x0033
|
||||
0x34 0x0034
|
||||
0x35 0x0035
|
||||
0x36 0x0036
|
||||
0x37 0x0037
|
||||
0x38 0x0038
|
||||
0x39 0x0039
|
||||
0x3a 0x003a
|
||||
0x3b 0x003b
|
||||
0x3c 0x003c
|
||||
0x3d 0x003d
|
||||
0x3e 0x003e
|
||||
0x3f 0x003f
|
||||
0x40 0x0040
|
||||
0x41 0x0041
|
||||
0x42 0x0042
|
||||
0x43 0x0043
|
||||
0x44 0x0044
|
||||
0x45 0x0045
|
||||
0x46 0x0046
|
||||
0x47 0x0047
|
||||
0x48 0x0048
|
||||
0x49 0x0049
|
||||
0x4a 0x004a
|
||||
0x4b 0x004b
|
||||
0x4c 0x004c
|
||||
0x4d 0x004d
|
||||
0x4e 0x004e
|
||||
0x4f 0x004f
|
||||
0x50 0x0050
|
||||
0x51 0x0051
|
||||
0x52 0x0052
|
||||
0x53 0x0053
|
||||
0x54 0x0054
|
||||
0x55 0x0055
|
||||
0x56 0x0056
|
||||
0x57 0x0057
|
||||
0x58 0x0058
|
||||
0x59 0x0059
|
||||
0x5a 0x005a
|
||||
0x5b 0x005b
|
||||
0x5c 0x005c
|
||||
0x5d 0x005d
|
||||
0x5e 0x005e
|
||||
0x5f 0x005f
|
||||
0x60 0x0060
|
||||
0x61 0x0061
|
||||
0x62 0x0062
|
||||
0x63 0x0063
|
||||
0x64 0x0064
|
||||
0x65 0x0065
|
||||
0x66 0x0066
|
||||
0x67 0x0067
|
||||
0x68 0x0068
|
||||
0x69 0x0069
|
||||
0x6a 0x006a
|
||||
0x6b 0x006b
|
||||
0x6c 0x006c
|
||||
0x6d 0x006d
|
||||
0x6e 0x006e
|
||||
0x6f 0x006f
|
||||
0x70 0x0070
|
||||
0x71 0x0071
|
||||
0x72 0x0072
|
||||
0x73 0x0073
|
||||
0x74 0x0074
|
||||
0x75 0x0075
|
||||
0x76 0x0076
|
||||
0x77 0x0077
|
||||
0x78 0x0078
|
||||
0x79 0x0079
|
||||
0x7a 0x007a
|
||||
0x7b 0x007b
|
||||
0x7c 0x007c
|
||||
0x7d 0x007d
|
||||
0x7e 0x007e
|
||||
0x7f 0x007f
|
||||
0xa1 0x0e81
|
||||
0xa2 0x0e82
|
||||
0xa3 0x0e84
|
||||
0xa4 0x0e87
|
||||
0xa5 0x0e88
|
||||
0xa6 0x0eaa
|
||||
0xa7 0x0e8a
|
||||
0xa8 0x0e8d
|
||||
0xa9 0x0e94
|
||||
0xaa 0x0e95
|
||||
0xab 0x0e96
|
||||
0xac 0x0e97
|
||||
0xad 0x0e99
|
||||
0xae 0x0e9a
|
||||
0xaf 0x0e9b
|
||||
0xb0 0x0e9c
|
||||
0xb1 0x0e9d
|
||||
0xb2 0x0e9e
|
||||
0xb3 0x0e9f
|
||||
0xb4 0x0ea1
|
||||
0xb5 0x0ea2
|
||||
0xb6 0x0ea3
|
||||
0xb7 0x0ea5
|
||||
0xb8 0x0ea7
|
||||
0xb9 0x0eab
|
||||
0xba 0x0ead
|
||||
0xbb 0x0eae
|
||||
0xbf 0x0eaf
|
||||
0xc0 0x0eb0
|
||||
0xc1 0x0eb2
|
||||
0xc2 0x0eb3
|
||||
0xc3 0x0eb4
|
||||
0xc4 0x0eb5
|
||||
0xc5 0x0eb6
|
||||
0xc6 0x0eb7
|
||||
0xc7 0x0eb8
|
||||
0xc8 0x0eb9
|
||||
0xc9 0x0ebc
|
||||
0xca 0x0eb1
|
||||
0xcb 0x0ebb
|
||||
0xcc 0x0ebd
|
||||
0xd0 0x0ec0
|
||||
0xd1 0x0ec1
|
||||
0xd2 0x0ec2
|
||||
0xd3 0x0ec3
|
||||
0xd4 0x0ec4
|
||||
0xd5 0x0ec8
|
||||
0xd6 0x0ec9
|
||||
0xd7 0x0eca
|
||||
0xd8 0x0ecb
|
||||
0xd9 0x0ecc
|
||||
0xda 0x0ecd
|
||||
0xdb 0x0ec6
|
||||
0xdd 0x0edc
|
||||
0xde 0x0edd
|
||||
0xdf 0x20ad
|
||||
0xf0 0x0ed0
|
||||
0xf1 0x0ed1
|
||||
0xf2 0x0ed2
|
||||
0xf3 0x0ed3
|
||||
0xf4 0x0ed4
|
||||
0xf5 0x0ed5
|
||||
0xf6 0x0ed6
|
||||
0xf7 0x0ed7
|
||||
0xf8 0x0ed8
|
||||
0xf9 0x0ed9
|
||||
0xfc 0x00a2
|
||||
0xfd 0x00ac
|
||||
0xfe 0x00a6
|
||||
0xff 0x00a0
|
256
codepages/808.TBL
Normal file
256
codepages/808.TBL
Normal file
@ -0,0 +1,256 @@
|
||||
0x00 0x0000
|
||||
0x01 0x0001
|
||||
0x02 0x0002
|
||||
0x03 0x0003
|
||||
0x04 0x0004
|
||||
0x05 0x0005
|
||||
0x06 0x0006
|
||||
0x07 0x0007
|
||||
0x08 0x0008
|
||||
0x09 0x0009
|
||||
0x0a 0x000a
|
||||
0x0b 0x000b
|
||||
0x0c 0x000c
|
||||
0x0d 0x000d
|
||||
0x0e 0x000e
|
||||
0x0f 0x000f
|
||||
0x10 0x0010
|
||||
0x11 0x0011
|
||||
0x12 0x0012
|
||||
0x13 0x0013
|
||||
0x14 0x0014
|
||||
0x15 0x0015
|
||||
0x16 0x0016
|
||||
0x17 0x0017
|
||||
0x18 0x0018
|
||||
0x19 0x0019
|
||||
0x1a 0x001a
|
||||
0x1b 0x001b
|
||||
0x1c 0x001c
|
||||
0x1d 0x001d
|
||||
0x1e 0x001e
|
||||
0x1f 0x001f
|
||||
0x20 0x0020
|
||||
0x21 0x0021
|
||||
0x22 0x0022
|
||||
0x23 0x0023
|
||||
0x24 0x0024
|
||||
0x25 0x0025
|
||||
0x26 0x0026
|
||||
0x27 0x0027
|
||||
0x28 0x0028
|
||||
0x29 0x0029
|
||||
0x2a 0x002a
|
||||
0x2b 0x002b
|
||||
0x2c 0x002c
|
||||
0x2d 0x002d
|
||||
0x2e 0x002e
|
||||
0x2f 0x002f
|
||||
0x30 0x0030
|
||||
0x31 0x0031
|
||||
0x32 0x0032
|
||||
0x33 0x0033
|
||||
0x34 0x0034
|
||||
0x35 0x0035
|
||||
0x36 0x0036
|
||||
0x37 0x0037
|
||||
0x38 0x0038
|
||||
0x39 0x0039
|
||||
0x3a 0x003a
|
||||
0x3b 0x003b
|
||||
0x3c 0x003c
|
||||
0x3d 0x003d
|
||||
0x3e 0x003e
|
||||
0x3f 0x003f
|
||||
0x40 0x0040
|
||||
0x41 0x0041
|
||||
0x42 0x0042
|
||||
0x43 0x0043
|
||||
0x44 0x0044
|
||||
0x45 0x0045
|
||||
0x46 0x0046
|
||||
0x47 0x0047
|
||||
0x48 0x0048
|
||||
0x49 0x0049
|
||||
0x4a 0x004a
|
||||
0x4b 0x004b
|
||||
0x4c 0x004c
|
||||
0x4d 0x004d
|
||||
0x4e 0x004e
|
||||
0x4f 0x004f
|
||||
0x50 0x0050
|
||||
0x51 0x0051
|
||||
0x52 0x0052
|
||||
0x53 0x0053
|
||||
0x54 0x0054
|
||||
0x55 0x0055
|
||||
0x56 0x0056
|
||||
0x57 0x0057
|
||||
0x58 0x0058
|
||||
0x59 0x0059
|
||||
0x5a 0x005a
|
||||
0x5b 0x005b
|
||||
0x5c 0x005c
|
||||
0x5d 0x005d
|
||||
0x5e 0x005e
|
||||
0x5f 0x005f
|
||||
0x60 0x0060
|
||||
0x61 0x0061
|
||||
0x62 0x0062
|
||||
0x63 0x0063
|
||||
0x64 0x0064
|
||||
0x65 0x0065
|
||||
0x66 0x0066
|
||||
0x67 0x0067
|
||||
0x68 0x0068
|
||||
0x69 0x0069
|
||||
0x6a 0x006a
|
||||
0x6b 0x006b
|
||||
0x6c 0x006c
|
||||
0x6d 0x006d
|
||||
0x6e 0x006e
|
||||
0x6f 0x006f
|
||||
0x70 0x0070
|
||||
0x71 0x0071
|
||||
0x72 0x0072
|
||||
0x73 0x0073
|
||||
0x74 0x0074
|
||||
0x75 0x0075
|
||||
0x76 0x0076
|
||||
0x77 0x0077
|
||||
0x78 0x0078
|
||||
0x79 0x0079
|
||||
0x7a 0x007a
|
||||
0x7b 0x007b
|
||||
0x7c 0x007c
|
||||
0x7d 0x007d
|
||||
0x7e 0x007e
|
||||
0x7f 0x007f
|
||||
0x80 0x0410
|
||||
0x81 0x0411
|
||||
0x82 0x0412
|
||||
0x83 0x0413
|
||||
0x84 0x0414
|
||||
0x85 0x0415
|
||||
0x86 0x0416
|
||||
0x87 0x0417
|
||||
0x88 0x0418
|
||||
0x89 0x0419
|
||||
0x8a 0x041a
|
||||
0x8b 0x041b
|
||||
0x8c 0x041c
|
||||
0x8d 0x041d
|
||||
0x8e 0x041e
|
||||
0x8f 0x041f
|
||||
0x90 0x0420
|
||||
0x91 0x0421
|
||||
0x92 0x0422
|
||||
0x93 0x0423
|
||||
0x94 0x0424
|
||||
0x95 0x0425
|
||||
0x96 0x0426
|
||||
0x97 0x0427
|
||||
0x98 0x0428
|
||||
0x99 0x0429
|
||||
0x9a 0x042a
|
||||
0x9b 0x042b
|
||||
0x9c 0x042c
|
||||
0x9d 0x042d
|
||||
0x9e 0x042e
|
||||
0x9f 0x042f
|
||||
0xa0 0x0430
|
||||
0xa1 0x0431
|
||||
0xa2 0x0432
|
||||
0xa3 0x0433
|
||||
0xa4 0x0434
|
||||
0xa5 0x0435
|
||||
0xa6 0x0436
|
||||
0xa7 0x0437
|
||||
0xa8 0x0438
|
||||
0xa9 0x0439
|
||||
0xaa 0x043a
|
||||
0xab 0x043b
|
||||
0xac 0x043c
|
||||
0xad 0x043d
|
||||
0xae 0x043e
|
||||
0xaf 0x043f
|
||||
0xb0 0x2591
|
||||
0xb1 0x2592
|
||||
0xb2 0x2593
|
||||
0xb3 0x2502
|
||||
0xb4 0x2524
|
||||
0xb5 0x2561
|
||||
0xb6 0x2562
|
||||
0xb7 0x2556
|
||||
0xb8 0x2555
|
||||
0xb9 0x2563
|
||||
0xba 0x2551
|
||||
0xbb 0x2557
|
||||
0xbc 0x255d
|
||||
0xbd 0x255c
|
||||
0xbe 0x255b
|
||||
0xbf 0x2510
|
||||
0xc0 0x2514
|
||||
0xc1 0x2534
|
||||
0xc2 0x252c
|
||||
0xc3 0x251c
|
||||
0xc4 0x2500
|
||||
0xc5 0x253c
|
||||
0xc6 0x255e
|
||||
0xc7 0x255f
|
||||
0xc8 0x255a
|
||||
0xc9 0x2554
|
||||
0xca 0x2569
|
||||
0xcb 0x2566
|
||||
0xcc 0x2560
|
||||
0xcd 0x2550
|
||||
0xce 0x256c
|
||||
0xcf 0x2567
|
||||
0xd0 0x2568
|
||||
0xd1 0x2564
|
||||
0xd2 0x2565
|
||||
0xd3 0x2559
|
||||
0xd4 0x2558
|
||||
0xd5 0x2552
|
||||
0xd6 0x2553
|
||||
0xd7 0x256b
|
||||
0xd8 0x256a
|
||||
0xd9 0x2518
|
||||
0xda 0x250c
|
||||
0xdb 0x2588
|
||||
0xdc 0x2584
|
||||
0xdd 0x258c
|
||||
0xde 0x2590
|
||||
0xdf 0x2580
|
||||
0xe0 0x0440
|
||||
0xe1 0x0441
|
||||
0xe2 0x0442
|
||||
0xe3 0x0443
|
||||
0xe4 0x0444
|
||||
0xe5 0x0445
|
||||
0xe6 0x0446
|
||||
0xe7 0x0447
|
||||
0xe8 0x0448
|
||||
0xe9 0x0449
|
||||
0xea 0x044a
|
||||
0xeb 0x044b
|
||||
0xec 0x044c
|
||||
0xed 0x044d
|
||||
0xee 0x044e
|
||||
0xef 0x044f
|
||||
0xf0 0x0401
|
||||
0xf1 0x0451
|
||||
0xf2 0x0404
|
||||
0xf3 0x0454
|
||||
0xf4 0x0407
|
||||
0xf5 0x0457
|
||||
0xf6 0x040e
|
||||
0xf7 0x045e
|
||||
0xf8 0x00b0
|
||||
0xf9 0x2219
|
||||
0xfa 0x00b7
|
||||
0xfb 0x221a
|
||||
0xfc 0x2116
|
||||
0xfd 0x20ac
|
||||
0xfe 0x25a0
|
||||
0xff 0x00a0
|
256
codepages/872.TBL
Normal file
256
codepages/872.TBL
Normal file
@ -0,0 +1,256 @@
|
||||
0x00 0x0000
|
||||
0x01 0x0001
|
||||
0x02 0x0002
|
||||
0x03 0x0003
|
||||
0x04 0x0004
|
||||
0x05 0x0005
|
||||
0x06 0x0006
|
||||
0x07 0x0007
|
||||
0x08 0x0008
|
||||
0x09 0x0009
|
||||
0x0a 0x000a
|
||||
0x0b 0x000b
|
||||
0x0c 0x000c
|
||||
0x0d 0x000d
|
||||
0x0e 0x000e
|
||||
0x0f 0x000f
|
||||
0x10 0x0010
|
||||
0x11 0x0011
|
||||
0x12 0x0012
|
||||
0x13 0x0013
|
||||
0x14 0x0014
|
||||
0x15 0x0015
|
||||
0x16 0x0016
|
||||
0x17 0x0017
|
||||
0x18 0x0018
|
||||
0x19 0x0019
|
||||
0x1a 0x001a
|
||||
0x1b 0x001b
|
||||
0x1c 0x001c
|
||||
0x1d 0x001d
|
||||
0x1e 0x001e
|
||||
0x1f 0x001f
|
||||
0x20 0x0020
|
||||
0x21 0x0021
|
||||
0x22 0x0022
|
||||
0x23 0x0023
|
||||
0x24 0x0024
|
||||
0x25 0x0025
|
||||
0x26 0x0026
|
||||
0x27 0x0027
|
||||
0x28 0x0028
|
||||
0x29 0x0029
|
||||
0x2a 0x002a
|
||||
0x2b 0x002b
|
||||
0x2c 0x002c
|
||||
0x2d 0x002d
|
||||
0x2e 0x002e
|
||||
0x2f 0x002f
|
||||
0x30 0x0030
|
||||
0x31 0x0031
|
||||
0x32 0x0032
|
||||
0x33 0x0033
|
||||
0x34 0x0034
|
||||
0x35 0x0035
|
||||
0x36 0x0036
|
||||
0x37 0x0037
|
||||
0x38 0x0038
|
||||
0x39 0x0039
|
||||
0x3a 0x003a
|
||||
0x3b 0x003b
|
||||
0x3c 0x003c
|
||||
0x3d 0x003d
|
||||
0x3e 0x003e
|
||||
0x3f 0x003f
|
||||
0x40 0x0040
|
||||
0x41 0x0041
|
||||
0x42 0x0042
|
||||
0x43 0x0043
|
||||
0x44 0x0044
|
||||
0x45 0x0045
|
||||
0x46 0x0046
|
||||
0x47 0x0047
|
||||
0x48 0x0048
|
||||
0x49 0x0049
|
||||
0x4a 0x004a
|
||||
0x4b 0x004b
|
||||
0x4c 0x004c
|
||||
0x4d 0x004d
|
||||
0x4e 0x004e
|
||||
0x4f 0x004f
|
||||
0x50 0x0050
|
||||
0x51 0x0051
|
||||
0x52 0x0052
|
||||
0x53 0x0053
|
||||
0x54 0x0054
|
||||
0x55 0x0055
|
||||
0x56 0x0056
|
||||
0x57 0x0057
|
||||
0x58 0x0058
|
||||
0x59 0x0059
|
||||
0x5a 0x005a
|
||||
0x5b 0x005b
|
||||
0x5c 0x005c
|
||||
0x5d 0x005d
|
||||
0x5e 0x005e
|
||||
0x5f 0x005f
|
||||
0x60 0x0060
|
||||
0x61 0x0061
|
||||
0x62 0x0062
|
||||
0x63 0x0063
|
||||
0x64 0x0064
|
||||
0x65 0x0065
|
||||
0x66 0x0066
|
||||
0x67 0x0067
|
||||
0x68 0x0068
|
||||
0x69 0x0069
|
||||
0x6a 0x006a
|
||||
0x6b 0x006b
|
||||
0x6c 0x006c
|
||||
0x6d 0x006d
|
||||
0x6e 0x006e
|
||||
0x6f 0x006f
|
||||
0x70 0x0070
|
||||
0x71 0x0071
|
||||
0x72 0x0072
|
||||
0x73 0x0073
|
||||
0x74 0x0074
|
||||
0x75 0x0075
|
||||
0x76 0x0076
|
||||
0x77 0x0077
|
||||
0x78 0x0078
|
||||
0x79 0x0079
|
||||
0x7a 0x007a
|
||||
0x7b 0x007b
|
||||
0x7c 0x007c
|
||||
0x7d 0x007d
|
||||
0x7e 0x007e
|
||||
0x7f 0x007f
|
||||
0x80 0x0452
|
||||
0x81 0x0402
|
||||
0x82 0x0453
|
||||
0x83 0x0403
|
||||
0x84 0x0451
|
||||
0x85 0x0401
|
||||
0x86 0x0454
|
||||
0x87 0x0404
|
||||
0x88 0x0455
|
||||
0x89 0x0405
|
||||
0x8a 0x0456
|
||||
0x8b 0x0406
|
||||
0x8c 0x0457
|
||||
0x8d 0x0407
|
||||
0x8e 0x0458
|
||||
0x8f 0x0408
|
||||
0x90 0x0459
|
||||
0x91 0x0409
|
||||
0x92 0x045a
|
||||
0x93 0x040a
|
||||
0x94 0x045b
|
||||
0x95 0x040b
|
||||
0x96 0x045c
|
||||
0x97 0x040c
|
||||
0x98 0x045e
|
||||
0x99 0x040e
|
||||
0x9a 0x045f
|
||||
0x9b 0x040f
|
||||
0x9c 0x044e
|
||||
0x9d 0x042e
|
||||
0x9e 0x044a
|
||||
0x9f 0x042a
|
||||
0xa0 0x0430
|
||||
0xa1 0x0410
|
||||
0xa2 0x0431
|
||||
0xa3 0x0411
|
||||
0xa4 0x0446
|
||||
0xa5 0x0426
|
||||
0xa6 0x0434
|
||||
0xa7 0x0414
|
||||
0xa8 0x0435
|
||||
0xa9 0x0415
|
||||
0xaa 0x0444
|
||||
0xab 0x0424
|
||||
0xac 0x0433
|
||||
0xad 0x0413
|
||||
0xae 0x00ab
|
||||
0xaf 0x00bb
|
||||
0xb0 0x2591
|
||||
0xb1 0x2592
|
||||
0xb2 0x2593
|
||||
0xb3 0x2502
|
||||
0xb4 0x2524
|
||||
0xb5 0x0445
|
||||
0xb6 0x0425
|
||||
0xb7 0x0438
|
||||
0xb8 0x0418
|
||||
0xb9 0x2563
|
||||
0xba 0x2551
|
||||
0xbb 0x2557
|
||||
0xbc 0x255d
|
||||
0xbd 0x0439
|
||||
0xbe 0x0419
|
||||
0xbf 0x2510
|
||||
0xc0 0x2514
|
||||
0xc1 0x2534
|
||||
0xc2 0x252c
|
||||
0xc3 0x251c
|
||||
0xc4 0x2500
|
||||
0xc5 0x253c
|
||||
0xc6 0x043a
|
||||
0xc7 0x041a
|
||||
0xc8 0x255a
|
||||
0xc9 0x2554
|
||||
0xca 0x2569
|
||||
0xcb 0x2566
|
||||
0xcc 0x2560
|
||||
0xcd 0x2550
|
||||
0xce 0x256c
|
||||
0xcf 0x20ac
|
||||
0xd0 0x043b
|
||||
0xd1 0x041b
|
||||
0xd2 0x043c
|
||||
0xd3 0x041c
|
||||
0xd4 0x043d
|
||||
0xd5 0x041d
|
||||
0xd6 0x043e
|
||||
0xd7 0x041e
|
||||
0xd8 0x043f
|
||||
0xd9 0x2518
|
||||
0xda 0x250c
|
||||
0xdb 0x2588
|
||||
0xdc 0x2584
|
||||
0xdd 0x041f
|
||||
0xde 0x044f
|
||||
0xdf 0x2580
|
||||
0xe0 0x042f
|
||||
0xe1 0x0440
|
||||
0xe2 0x0420
|
||||
0xe3 0x0441
|
||||
0xe4 0x0421
|
||||
0xe5 0x0442
|
||||
0xe6 0x0422
|
||||
0xe7 0x0443
|
||||
0xe8 0x0423
|
||||
0xe9 0x0436
|
||||
0xea 0x0416
|
||||
0xeb 0x0432
|
||||
0xec 0x0412
|
||||
0xed 0x044c
|
||||
0xee 0x042c
|
||||
0xef 0x2116
|
||||
0xf0 0x00ad
|
||||
0xf1 0x044b
|
||||
0xf2 0x042b
|
||||
0xf3 0x0437
|
||||
0xf4 0x0417
|
||||
0xf5 0x0448
|
||||
0xf6 0x0428
|
||||
0xf7 0x044d
|
||||
0xf8 0x042d
|
||||
0xf9 0x0449
|
||||
0xfa 0x0429
|
||||
0xfb 0x0447
|
||||
0xfc 0x0427
|
||||
0xfd 0x00a7
|
||||
0xfe 0x25a0
|
||||
0xff 0x00a0
|
@ -1,6 +1,6 @@
|
||||
/* cpexcel.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
||||
/*jshint -W100 */
|
||||
var cptable = {version:"1.4.0"};
|
||||
var cptable = {version:"1.5.0"};
|
||||
cptable[874] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F><E282AC><EFBFBD><EFBFBD>…<EFBFBD><E280A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>‘’“”•–—<E28093><E28094><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู<E0B8B9><E0B8BA><EFBFBD><EFBFBD>฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛<E0B99A><E0B99B><EFBFBD><EFBFBD>", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[932] = (function(){ var d = [], e = {}, D = [], j;
|
||||
D[0] = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚<EFBE9E><EFBE9F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>".split("");
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* cptable.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
||||
/*jshint -W100 */
|
||||
var cptable = {version:"1.4.0"};
|
||||
var cptable = {version:"1.5.0"};
|
||||
cptable[37] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ¢.<(+|&éêëèíîïìß!$*);¬-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ¤µ~stuvwxyz¡¿ÐÝÞ®^£¥·©§¶¼½¾[]¯¨´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[437] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[500] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ[.<(+!&éêëèíîïìß]$*);^-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ¤µ~stuvwxyz¡¿ÐÝÞ®¢£¥·©§¶¼½¾¬|¯¨´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
@ -810,6 +810,7 @@ cptable[1255] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006
|
||||
cptable[1256] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œں ،¢£¤¥¦§¨©ھ«¬®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûüے", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1257] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚<EFBFBD>„…†‡<E280A0>‰<EFBFBD>‹<EFBFBD>¨ˇ¸<CB87>‘’“”•–—<E28093>™<EFBFBD>›<EFBFBD>¯˛<C2AF> <EFBFBD>¢£¤<C2A3>¦§Ø©Ŗ«¬®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1258] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰<CB86>‹Œ<E280B9><C592><EFBFBD><EFBFBD>‘’“”•–—˜™<CB9C>›œ<E280BA><C593>Ÿ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[47451] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥ßƒáíóúñѪº¿⌐¬½¼¡«»ãõØøœŒÀÃÕ¨´†¶©®™ijIJאבגדהוזחטיכלמנסעפצקרשתןךםףץ§∧∞αβΓπΣσµτΦΘΩδ∮φ∈∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²³¯", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[10000] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ<C393>ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[10006] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ<CE90>", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[10007] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
@ -833,9 +834,13 @@ cptable[28605] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u000
|
||||
cptable[28606] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~
ĄąŁ€„Š§š©Ș«ŹźŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[708] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~│┤éâ╡à╢çêëèïî╖╕╣║╗╝ô╜╛ûù┐└┴┬├¤─┼╞╟╚╔╩،╦«»░▒▓╠═╬╧╨╤╥╙؛╘╒╓؟╫ءآأؤإئابةتثجحخدذرزسشصضطظعغ█▄▌▐▀ـفقكلمنهوىيًٌٍَُِّْ╪┘┌µ£■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[720] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~éâàçêëèïîّْô¤ـûùءآأؤ£إئابةتثجحخدذرزسشص«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ضطظعغفµقكلمنهوىي≡ًٌٍَُِ≈°∙·√ⁿ²■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[808] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[858] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´±‗¾¶§÷¸°¨·¹³²■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[870] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäţáăčçć[.<(+!&éęëůíîľĺß]$*);^-/ÂÄ˝ÁĂČÇĆ|,%_>?ˇÉĘËŮÍÎĽĹ`:#@'=\"˘abcdefghiśňđýřş°jklmnopqrłńš¸˛¤ą~stuvwxyzŚŇĐÝŘŞ˙ĄżŢŻ§žźŽŹŁŃŠ¨´×{ABCDEFGHIôöŕóő}JKLMNOPQRĚűüťúě\\÷STUVWXYZďÔÖŔÓŐ0123456789ĎŰÜŤÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[872] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬€лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№ыЫзЗшШэЭщЩчЧ§■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1010] = (function(){ var d = "<22>\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"£$%&’()*+,-./0123456789:;<=>?àABCDEFGHIJKLMNOPQRSTUVWXYZ°ç§ˆ_µabcdefghijklmnopqrstuvwxyzéùè¨<C3A8><C2A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1047] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\n\b\u0018\u0019\u001c\u001d\u001e\u001f
\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ¢.<(+|&éêëèíîïìß!$*);^-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ¤µ~stuvwxyz¡¿Ð[Þ®¬£¥·©§¶¼½¾Ý¨¯]´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1132] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ<E0BAAD><E0BAAE><EFBFBD>ຯະາຳິີຶືຸູຼັົຽ<E0BABB><E0BABD><EFBFBD>ເແໂໃໄ່້໊໋໌ໍໆ<E0BB8D>ໜໝ₭<E0BB9D><E282AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>໐໑໒໓໔໕໖໗໘໙<E0BB98><E0BB99>¢¬¦ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1140] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ¢.<(+|&éêëèíîïìß!$*);¬-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ€µ~stuvwxyz¡¿ÐÝÞ®^£¥·©§¶¼½¾[]¯¨´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1141] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a â{àáãåçñÄ.<(+!&éêëèíîïì~Ü$*);^-/Â[ÀÁÃÅÇÑö,%_>?øÉÊËÈÍÎÏÌ`:#§'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ€µßstuvwxyz¡¿ÐÝÞ®¢£¥·©@¶¼½¾¬|¯¨´×äABCDEFGHIô¦òóõüJKLMNOPQR¹û}ùúÿÖ÷STUVWXYZ²Ô\\ÒÓÕ0123456789³Û]ÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1142] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáã}çñ#.<(+!&éêëèíîïì߀Å*);^-/ÂÄÀÁÃ$ÇÑø,%_>?¦ÉÊËÈÍÎÏÌ`:ÆØ'=\"@abcdefghi«»ðýþ±°jklmnopqrªº{¸[]µüstuvwxyz¡¿ÐÝÞ®¢£¥·©§¶¼½¾¬|¯¨´×æABCDEFGHIôöòóõåJKLMNOPQR¹û~ùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
|
535
cputils.flow.js
Normal file
535
cputils.flow.js
Normal file
@ -0,0 +1,535 @@
|
||||
/* cputils.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ft=javascript: */
|
||||
/*jshint newcap: false */
|
||||
/*::
|
||||
type Data = string | Array<number> | Buffer;
|
||||
type StrData = string | Array<string> | Buffer;
|
||||
type OutType = Data;
|
||||
type Decoder = (data:Data)=>string;
|
||||
type Encoder = (data:StrData, ofmt:?string)=>Data;
|
||||
type CPIndex = number|string;
|
||||
type EMap = {[e:string]:number};
|
||||
type DMap = Array<string>;
|
||||
type EncoderMap = {[id:CPIndex]:Encoder};
|
||||
type DecoderMap = {[id:CPIndex]:Decoder};
|
||||
type CPEntry = {enc:EMap, dec:DMap};
|
||||
*/
|
||||
(function(root/*:any*/, factory) {
|
||||
"use strict";
|
||||
if(typeof cptable === "undefined") {
|
||||
if(typeof require !== "undefined"){
|
||||
var cpt = require('./cpt' + 'able');
|
||||
if (typeof module !== 'undefined' && module.exports) module.exports = factory(cpt);
|
||||
else root.cptable = factory(cpt);
|
||||
} else throw new Error("cptable not found");
|
||||
} else cptable = factory(cptable);
|
||||
}(this, function(cpt){
|
||||
"use strict";
|
||||
var magic/*:{[id:CPIndex]:string}*/ = {
|
||||
"1200":"utf16le",
|
||||
"1201":"utf16be",
|
||||
"12000":"utf32le",
|
||||
"12001":"utf32be",
|
||||
"16969":"utf64le",
|
||||
"20127":"ascii",
|
||||
"65000":"utf7",
|
||||
"65001":"utf8"
|
||||
};
|
||||
|
||||
var sbcs_cache/*:Array<number>*/ = [874,1250,1251,1252,1253,1254,1255,1256,10000];
|
||||
var dbcs_cache/*:Array<number>*/ = [932,936,949,950];
|
||||
var magic_cache/*:Array<number>*/ = [65001];
|
||||
var magic_decode/*:DecoderMap*/ = {};
|
||||
var magic_encode/*:EncoderMap*/ = {};
|
||||
var cpdcache/*:DecoderMap*/ = {};
|
||||
var cpecache/*:EncoderMap*/ = {};
|
||||
|
||||
var sfcc = function sfcc(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };
|
||||
var cca = function cca(x/*:string*/)/*:number*/ { return x.charCodeAt(0); };
|
||||
|
||||
var has_buf/*:boolean*/ = (typeof Buffer !== 'undefined');
|
||||
if(has_buf) {
|
||||
var mdl = 1024, mdb = new Buffer(mdl);
|
||||
var make_EE = function make_EE(E/*:EMap*/)/*:Buffer*/{
|
||||
var EE = new Buffer(65536);
|
||||
for(var i = 0; i < 65536;++i) EE[i] = 0;
|
||||
var keys/*:Array<string>*/ = Object.keys(E), len = keys.length;
|
||||
for(var ee = 0, e = keys[ee]; ee < len; ++ee) {
|
||||
if(!(e = keys[ee])) continue;
|
||||
EE[e.charCodeAt(0)] = E[e];
|
||||
}
|
||||
return EE;
|
||||
};
|
||||
var sbcs_encode = function make_sbcs_encode(cp/*:CPIndex*/)/*:Encoder*/ {
|
||||
var EE/*:Buffer*/ = make_EE(cpt[cp].enc);
|
||||
return function sbcs_e(data/*:StrData*/, ofmt/*:?string*/) {
|
||||
var len = data.length;
|
||||
var out/*:Buffer*/, i=0, j=0, D=0, w=0;
|
||||
if(typeof data === 'string') {
|
||||
out = new Buffer(len);
|
||||
for(i = 0; i < len; ++i) out[i] = EE[data.charCodeAt(i)];
|
||||
} else if(/*:: data instanceof Buffer && */Buffer.isBuffer(data)) {
|
||||
out = new Buffer(2*len);
|
||||
j = 0;
|
||||
for(i = 0; i < len; ++i) {
|
||||
D = data[i];
|
||||
if(D < 128) out[j++] = EE[D];
|
||||
else if(D < 224) { out[j++] = EE[((D&31)<<6)+(data[i+1]&63)]; ++i; }
|
||||
else if(D < 240) { out[j++] = EE[((D&15)<<12)+((data[i+1]&63)<<6)+(data[i+2]&63)]; i+=2; }
|
||||
else {
|
||||
w = ((D&7)<<18)+((data[i+1]&63)<<12)+((data[i+2]&63)<<6)+(data[i+3]&63); i+=3;
|
||||
if(w < 65536) out[j++] = EE[w];
|
||||
else { w -= 65536; out[j++] = EE[0xD800 + ((w>>10)&1023)]; out[j++] = EE[0xDC00 + (w&1023)]; }
|
||||
}
|
||||
}
|
||||
out = out.slice(0,j);
|
||||
} else {
|
||||
out = new Buffer(len);
|
||||
for(i = 0; i < len; ++i) out[i] = EE[/*::(*/data[i]/*:: :any)*/.charCodeAt(0)];
|
||||
}
|
||||
if(!ofmt || ofmt === 'buf') return out;
|
||||
if(ofmt !== 'arr') return out.toString('binary');
|
||||
return [].slice.call(out);
|
||||
};
|
||||
};
|
||||
var sbcs_decode = function make_sbcs_decode(cp/*:CPIndex*/)/*:Decoder*/ {
|
||||
var D/*:DMap*/ = cpt[cp].dec;
|
||||
var DD = new Buffer(131072), d=0, c="";
|
||||
for(d=0;d<D.length;++d) {
|
||||
if(!(c=D[d])) continue;
|
||||
var w = c.charCodeAt(0);
|
||||
DD[2*d] = w&255; DD[2*d+1] = w>>8;
|
||||
}
|
||||
return function sbcs_d(data/*:Data*/)/*:string*/ {
|
||||
var len = data.length, i=0, j=0;
|
||||
if(2 * len > mdl) { mdl = 2 * len; mdb = new Buffer(mdl); }
|
||||
if(/*::data instanceof Buffer && */Buffer.isBuffer(data)) {
|
||||
for(i = 0; i < len; i++) {
|
||||
j = 2*data[i];
|
||||
mdb[2*i] = DD[j]; mdb[2*i+1] = DD[j+1];
|
||||
}
|
||||
} else if(typeof data === "string") {
|
||||
for(i = 0; i < len; i++) {
|
||||
j = 2*data.charCodeAt(i);
|
||||
mdb[2*i] = DD[j]; mdb[2*i+1] = DD[j+1];
|
||||
}
|
||||
} else {
|
||||
for(i = 0; i < len; i++) {
|
||||
j = 2*data[i];
|
||||
mdb[2*i] = DD[j]; mdb[2*i+1] = DD[j+1];
|
||||
}
|
||||
}
|
||||
return mdb.slice(0, 2 * len).toString('ucs2');
|
||||
};
|
||||
};
|
||||
var dbcs_encode = function make_dbcs_encode(cp/*:CPIndex*/)/*:Encoder*/ {
|
||||
var E/*:EMap*/ = cpt[cp].enc;
|
||||
var EE = new Buffer(131072);
|
||||
for(var i = 0; i < 131072; ++i) EE[i] = 0;
|
||||
var keys = Object.keys(E);
|
||||
for(var ee = 0, e = keys[ee]; ee < keys.length; ++ee) {
|
||||
if(!(e = keys[ee])) continue;
|
||||
var f = e.charCodeAt(0);
|
||||
EE[2*f] = E[e] & 255; EE[2*f+1] = E[e]>>8;
|
||||
}
|
||||
return function dbcs_e(data/*:StrData*/, ofmt/*:?string*/)/*:any*/ {
|
||||
var len = data.length, out = new Buffer(2*len), i=0, j=0, jj=0, k=0, D=0;
|
||||
if(typeof data === 'string') {
|
||||
for(i = k = 0; i < len; ++i) {
|
||||
j = data.charCodeAt(i)*2;
|
||||
out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];
|
||||
}
|
||||
out = out.slice(0,k);
|
||||
} else if(/*::data instanceof Buffer && */Buffer.isBuffer(data)) {
|
||||
for(i = k = 0; i < len; ++i) {
|
||||
D = data[i];
|
||||
if(D < 128) j = D;
|
||||
else if(D < 224) { j = ((D&31)<<6)+(data[i+1]&63); ++i; }
|
||||
else if(D < 240) { j = ((D&15)<<12)+((data[i+1]&63)<<6)+(data[i+2]&63); i+=2; }
|
||||
else { j = ((D&7)<<18)+((data[i+1]&63)<<12)+((data[i+2]&63)<<6)+(data[i+3]&63); i+=3; }
|
||||
if(j<65536) { j*=2; out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j]; }
|
||||
else { jj = j-65536;
|
||||
j=2*(0xD800 + ((jj>>10)&1023)); out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];
|
||||
j=2*(0xDC00 + (jj&1023)); out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];
|
||||
}
|
||||
}
|
||||
out = out.slice(0,k);
|
||||
} else {
|
||||
for(i = k = 0; i < len; i++) {
|
||||
j = /*::(*/data[i]/*:: :any)*/.charCodeAt(0)*2;
|
||||
out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];
|
||||
}
|
||||
}
|
||||
if(!ofmt || ofmt === 'buf') return out;
|
||||
if(ofmt !== 'arr') return out.toString('binary');
|
||||
return [].slice.call(out);
|
||||
};
|
||||
};
|
||||
var dbcs_decode = function make_dbcs_decode(cp/*:CPIndex*/)/*:Decoder*/ {
|
||||
var D/*:DMap*/ = cpt[cp].dec;
|
||||
var DD = new Buffer(131072), d=0, c, w=0, j=0, i=0;
|
||||
for(i = 0; i < 65536; ++i) { DD[2*i] = 0xFF; DD[2*i+1] = 0xFD;}
|
||||
for(d = 0; d < D.length; ++d) {
|
||||
if(!(c=D[d])) continue;
|
||||
w = c.charCodeAt(0);
|
||||
j = 2*d;
|
||||
DD[j] = w&255; DD[j+1] = w>>8;
|
||||
}
|
||||
return function dbcs_d(data/*:Data*/)/*:string*/ {
|
||||
var len = data.length, out = new Buffer(2*len), i=0, j=0, k=0;
|
||||
if(/*::data instanceof Buffer && */Buffer.isBuffer(data)) {
|
||||
for(i = 0; i < len; i++) {
|
||||
j = 2*data[i];
|
||||
if(DD[j]===0xFF && DD[j+1]===0xFD) { j=2*((data[i]<<8)+data[i+1]); ++i; }
|
||||
out[k++] = DD[j]; out[k++] = DD[j+1];
|
||||
}
|
||||
} else if(typeof data === "string") {
|
||||
for(i = 0; i < len; i++) {
|
||||
j = 2*data.charCodeAt(i);
|
||||
if(DD[j]===0xFF && DD[j+1]===0xFD) { j=2*((data.charCodeAt(i)<<8)+data.charCodeAt(i+1)); ++i; }
|
||||
out[k++] = DD[j]; out[k++] = DD[j+1];
|
||||
}
|
||||
} else {
|
||||
for(i = 0; i < len; i++) {
|
||||
j = 2*data[i];
|
||||
if(DD[j]===0xFF && DD[j+1]===0xFD) { j=2*((data[i]<<8)+data[i+1]); ++i; }
|
||||
out[k++] = DD[j]; out[k++] = DD[j+1];
|
||||
}
|
||||
}
|
||||
return out.slice(0,k).toString('ucs2');
|
||||
};
|
||||
};
|
||||
magic_decode[65001] = function utf8_d(data/*:Data*/)/*:string*/ {
|
||||
if(typeof data === "string") return utf8_d(data.split("").map(cca));
|
||||
var len = data.length, w = 0, ww = 0;
|
||||
if(4 * len > mdl) { mdl = 4 * len; mdb = new Buffer(mdl); }
|
||||
var i = 0;
|
||||
if(len >= 3 && data[0] == 0xEF) if(data[1] == 0xBB && data[2] == 0xBF) i = 3;
|
||||
for(var j = 1, k = 0, D = 0; i < len; i+=j) {
|
||||
j = 1; D = data[i];
|
||||
if(D < 128) w = D;
|
||||
else if(D < 224) { w=(D&31)*64+(data[i+1]&63); j=2; }
|
||||
else if(D < 240) { w=((D&15)<<12)+(data[i+1]&63)*64+(data[i+2]&63); j=3; }
|
||||
else { w=(D&7)*262144+((data[i+1]&63)<<12)+(data[i+2]&63)*64+(data[i+3]&63); j=4; }
|
||||
if(w < 65536) { mdb[k++] = w&255; mdb[k++] = w>>8; }
|
||||
else {
|
||||
w -= 65536; ww = 0xD800 + ((w>>10)&1023); w = 0xDC00 + (w&1023);
|
||||
mdb[k++] = ww&255; mdb[k++] = ww>>>8; mdb[k++] = w&255; mdb[k++] = (w>>>8)&255;
|
||||
}
|
||||
}
|
||||
return mdb.slice(0,k).toString('ucs2');
|
||||
};
|
||||
magic_encode[65001] = function utf8_e(data/*:StrData*/, ofmt/*:?string*/)/*:any*/ {
|
||||
if(has_buf && /*::data instanceof Buffer && */Buffer.isBuffer(data)) {
|
||||
if(!ofmt || ofmt === 'buf') return data;
|
||||
if(ofmt !== 'arr') return data.toString('binary');
|
||||
return [].slice.call(data);
|
||||
}
|
||||
/*::
|
||||
// data cannot be a buffer at this point
|
||||
if(data instanceof Buffer) throw "";
|
||||
*/
|
||||
var len = data.length, w = 0, ww = 0, j = 0;
|
||||
var direct = typeof data === "string";
|
||||
if(4 * len > mdl) { mdl = 4 * len; mdb = new Buffer(mdl); }
|
||||
for(var i = 0; i < len; ++i) {
|
||||
w = direct /*::&& typeof data === "string" */? data.charCodeAt(i) : data[i].charCodeAt(0);
|
||||
if(w <= 0x007F) mdb[j++] = w;
|
||||
else if(w <= 0x07FF) {
|
||||
mdb[j++] = 192 + (w >> 6);
|
||||
mdb[j++] = 128 + (w&63);
|
||||
} else if(w >= 0xD800 && w <= 0xDFFF) {
|
||||
w -= 0xD800; ++i;
|
||||
ww = (direct /*::&& typeof data === "string" */? data.charCodeAt(i) : data[i].charCodeAt(0)) - 0xDC00 + (w << 10);
|
||||
mdb[j++] = 240 + ((ww>>>18) & 0x07);
|
||||
mdb[j++] = 144 + ((ww>>>12) & 0x3F);
|
||||
mdb[j++] = 128 + ((ww>>>6) & 0x3F);
|
||||
mdb[j++] = 128 + (ww & 0x3F);
|
||||
} else {
|
||||
mdb[j++] = 224 + (w >> 12);
|
||||
mdb[j++] = 128 + ((w >> 6)&63);
|
||||
mdb[j++] = 128 + (w&63);
|
||||
}
|
||||
}
|
||||
if(!ofmt || ofmt === 'buf') return mdb.slice(0,j);
|
||||
if(ofmt !== 'arr') return mdb.slice(0,j).toString('binary');
|
||||
return [].slice.call(mdb, 0, j);
|
||||
};
|
||||
}
|
||||
|
||||
var encache = function encache() {
|
||||
if(has_buf) {
|
||||
if(cpdcache[sbcs_cache[0]]) return;
|
||||
var i=0, s=0;
|
||||
for(i = 0; i < sbcs_cache.length; ++i) {
|
||||
s = sbcs_cache[i];
|
||||
if(cpt[s]) {
|
||||
cpdcache[s] = sbcs_decode(s);
|
||||
cpecache[s] = sbcs_encode(s);
|
||||
}
|
||||
}
|
||||
for(i = 0; i < dbcs_cache.length; ++i) {
|
||||
s = dbcs_cache[i];
|
||||
if(cpt[s]) {
|
||||
cpdcache[s] = dbcs_decode(s);
|
||||
cpecache[s] = dbcs_encode(s);
|
||||
}
|
||||
}
|
||||
for(i = 0; i < magic_cache.length; ++i) {
|
||||
s = magic_cache[i];
|
||||
if(magic_decode[s]) cpdcache[s] = magic_decode[s];
|
||||
if(magic_encode[s]) cpecache[s] = magic_encode[s];
|
||||
}
|
||||
}
|
||||
};
|
||||
var null_enc = function(data/*:StrData*/, ofmt/*:?string*/) { return ""; };
|
||||
var cp_decache = function cp_decache(cp/*:CPIndex*/)/*:void*/ { delete cpdcache[cp]; delete cpecache[cp]; };
|
||||
var decache = function decache() {
|
||||
if(has_buf) {
|
||||
if(!cpdcache[sbcs_cache[0]]) return;
|
||||
sbcs_cache.forEach(cp_decache);
|
||||
dbcs_cache.forEach(cp_decache);
|
||||
magic_cache.forEach(cp_decache);
|
||||
}
|
||||
last_enc = null_enc; last_cp = 0;
|
||||
};
|
||||
var cache = {
|
||||
encache: encache,
|
||||
decache: decache,
|
||||
sbcs: sbcs_cache,
|
||||
dbcs: dbcs_cache
|
||||
};
|
||||
|
||||
encache();
|
||||
|
||||
var BM = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
var SetD = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?";
|
||||
var last_enc/*:Encoder*/ = null_enc, last_cp/*:CPIndex*/ = 0;
|
||||
var encode = function encode(cp/*:CPIndex*/, data/*:StrData*/, ofmt/*:?string*/)/*:OutType*/ {
|
||||
if(cp === last_cp && last_enc) { return last_enc(data, ofmt); }
|
||||
if(cpecache[cp]) { last_enc = cpecache[last_cp=cp]; return last_enc(data, ofmt); }
|
||||
if(has_buf && /*::data instanceof Buffer && */Buffer.isBuffer(data)) data = data.toString('utf8');
|
||||
/*::
|
||||
// data cannot be a buffer at this point
|
||||
if(data instanceof Buffer) throw "";
|
||||
*/
|
||||
var len = data.length;
|
||||
var out = has_buf ? new Buffer(4*len) : [], w=0, i=0, j = 0, ww=0;
|
||||
var C/*:CPEntry*/ = cpt[cp], E/*:EMap*/, M/*:string*/ = "";
|
||||
if(C && (E=C.enc)) for(i = 0; i < len; ++i, ++j) {
|
||||
w = E[data[i]];
|
||||
if(w > 255) {
|
||||
out[j] = w>>8;
|
||||
out[++j] = w&255;
|
||||
} else out[j] = w&255;
|
||||
}
|
||||
else if((M=magic[cp])) switch(M) {
|
||||
case "utf8":
|
||||
if(has_buf && typeof data === "string") { out = new Buffer(data, M); j = out.length; break; }
|
||||
for(i = 0; i < len; ++i, ++j) {
|
||||
w = data[i].charCodeAt(0);
|
||||
if(w <= 0x007F) out[j] = w;
|
||||
else if(w <= 0x07FF) {
|
||||
out[j] = 192 + (w >> 6);
|
||||
out[++j] = 128 + (w&63);
|
||||
} else if(w >= 0xD800 && w <= 0xDFFF) {
|
||||
w -= 0xD800;
|
||||
ww = data[++i].charCodeAt(0) - 0xDC00 + (w << 10);
|
||||
out[j] = 240 + ((ww>>>18) & 0x07);
|
||||
out[++j] = 144 + ((ww>>>12) & 0x3F);
|
||||
out[++j] = 128 + ((ww>>>6) & 0x3F);
|
||||
out[++j] = 128 + (ww & 0x3F);
|
||||
} else {
|
||||
out[j] = 224 + (w >> 12);
|
||||
out[++j] = 128 + ((w >> 6)&63);
|
||||
out[++j] = 128 + (w&63);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "ascii":
|
||||
if(has_buf && typeof data === "string") { out = new Buffer(data, M); j = out.length; break; }
|
||||
for(i = 0; i < len; ++i, ++j) {
|
||||
w = data[i].charCodeAt(0);
|
||||
if(w <= 0x007F) out[j] = w;
|
||||
else throw new Error("bad ascii " + w);
|
||||
}
|
||||
break;
|
||||
case "utf16le":
|
||||
if(has_buf && typeof data === "string") { out = new Buffer(data, M); j = out.length; break; }
|
||||
for(i = 0; i < len; ++i) {
|
||||
w = data[i].charCodeAt(0);
|
||||
out[j++] = w&255;
|
||||
out[j++] = w>>8;
|
||||
}
|
||||
break;
|
||||
case "utf16be":
|
||||
for(i = 0; i < len; ++i) {
|
||||
w = data[i].charCodeAt(0);
|
||||
out[j++] = w>>8;
|
||||
out[j++] = w&255;
|
||||
}
|
||||
break;
|
||||
case "utf32le":
|
||||
for(i = 0; i < len; ++i) {
|
||||
w = data[i].charCodeAt(0);
|
||||
if(w >= 0xD800 && w <= 0xDFFF) w = 0x10000 + ((w - 0xD800) << 10) + (data[++i].charCodeAt(0) - 0xDC00);
|
||||
out[j++] = w&255; w >>= 8;
|
||||
out[j++] = w&255; w >>= 8;
|
||||
out[j++] = w&255; w >>= 8;
|
||||
out[j++] = w&255;
|
||||
}
|
||||
break;
|
||||
case "utf32be":
|
||||
for(i = 0; i < len; ++i) {
|
||||
w = data[i].charCodeAt(0);
|
||||
if(w >= 0xD800 && w <= 0xDFFF) w = 0x10000 + ((w - 0xD800) << 10) + (data[++i].charCodeAt(0) - 0xDC00);
|
||||
out[j+3] = w&255; w >>= 8;
|
||||
out[j+2] = w&255; w >>= 8;
|
||||
out[j+1] = w&255; w >>= 8;
|
||||
out[j] = w&255;
|
||||
j+=4;
|
||||
}
|
||||
break;
|
||||
case "utf7":
|
||||
for(i = 0; i < len; i++) {
|
||||
var c/*:string*/ = data[i];
|
||||
if(c === "+") { out[j++] = 0x2b; out[j++] = 0x2d; continue; }
|
||||
if(SetD.indexOf(c) > -1) { out[j++] = c.charCodeAt(0); continue; }
|
||||
var tt = encode(1201, c);
|
||||
out[j++] = 0x2b;
|
||||
out[j++] = BM.charCodeAt(tt[0]>>2);
|
||||
out[j++] = BM.charCodeAt(((tt[0]&0x03)<<4) + ((tt[1]||0)>>4));
|
||||
out[j++] = BM.charCodeAt(((tt[1]&0x0F)<<2) + ((tt[2]||0)>>6));
|
||||
out[j++] = 0x2d;
|
||||
}
|
||||
break;
|
||||
default: throw new Error("Unsupported magic: " + cp + " " + magic[cp]);
|
||||
}
|
||||
else throw new Error("Unrecognized CP: " + cp);
|
||||
out = out.slice(0,j);
|
||||
if(!has_buf) return (ofmt == 'str') ? (out/*:any*/).map(sfcc).join("") : out;
|
||||
if(!ofmt || ofmt === 'buf') return out;
|
||||
if(ofmt !== 'arr') return out.toString('binary');
|
||||
return [].slice.call(out);
|
||||
};
|
||||
var decode = function decode(cp/*:CPIndex*/, data/*:Data*/)/*:string*/ {
|
||||
var F/*:Decoder*/; if((F=cpdcache[cp])) return F(data);
|
||||
if(typeof data === "string") return decode(cp, data.split("").map(cca));
|
||||
var len = data.length, out = new Array(len), s="", w=0, i=0, j=1, k=0, ww=0;
|
||||
var C/*:CPEntry*/ = cpt[cp], D/*:DMap*/, M="";
|
||||
if(C && (D=C.dec)) {
|
||||
for(i = 0; i < len; i+=j) {
|
||||
j = 2;
|
||||
s = D[(data[i]<<8)+ data[i+1]];
|
||||
if(!s) {
|
||||
j = 1;
|
||||
s = D[data[i]];
|
||||
}
|
||||
if(!s) throw new Error('Unrecognized code: ' + data[i] + ' ' + data[i+j-1] + ' ' + i + ' ' + j + ' ' + D[data[i]]);
|
||||
out[k++] = s;
|
||||
}
|
||||
}
|
||||
else if((M=magic[cp])) switch(M) {
|
||||
case "utf8":
|
||||
if(len >= 3 && data[0] == 0xEF) if(data[1] == 0xBB && data[2] == 0xBF) i = 3;
|
||||
for(; i < len; i+=j) {
|
||||
j = 1;
|
||||
if(data[i] < 128) w = data[i];
|
||||
else if(data[i] < 224) { w=(data[i]&31)*64+(data[i+1]&63); j=2; }
|
||||
else if(data[i] < 240) { w=((data[i]&15)<<12)+(data[i+1]&63)*64+(data[i+2]&63); j=3; }
|
||||
else { w=(data[i]&7)*262144+((data[i+1]&63)<<12)+(data[i+2]&63)*64+(data[i+3]&63); j=4; }
|
||||
if(w < 65536) { out[k++] = String.fromCharCode(w); }
|
||||
else {
|
||||
w -= 65536; ww = 0xD800 + ((w>>10)&1023); w = 0xDC00 + (w&1023);
|
||||
out[k++] = String.fromCharCode(ww); out[k++] = String.fromCharCode(w);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "ascii":
|
||||
if(has_buf && /*::data instanceof Buffer && */Buffer.isBuffer(data)) return data.toString(M);
|
||||
for(i = 0; i < len; i++) out[i] = String.fromCharCode(data[i]);
|
||||
k = len; break;
|
||||
case "utf16le":
|
||||
if(len >= 2 && data[0] == 0xFF) if(data[1] == 0xFE) i = 2;
|
||||
if(has_buf && /*::data instanceof Buffer && */Buffer.isBuffer(data)) return data.toString(M);
|
||||
j = 2;
|
||||
for(; i+1 < len; i+=j) {
|
||||
out[k++] = String.fromCharCode((data[i+1]<<8) + data[i]);
|
||||
}
|
||||
break;
|
||||
case "utf16be":
|
||||
if(len >= 2 && data[0] == 0xFE) if(data[1] == 0xFF) i = 2;
|
||||
j = 2;
|
||||
for(; i+1 < len; i+=j) {
|
||||
out[k++] = String.fromCharCode((data[i]<<8) + data[i+1]);
|
||||
}
|
||||
break;
|
||||
case "utf32le":
|
||||
if(len >= 4 && data[0] == 0xFF) if(data[1] == 0xFE && data[2] === 0 && data[3] === 0) i = 4;
|
||||
j = 4;
|
||||
for(; i < len; i+=j) {
|
||||
w = (data[i+3]<<24) + (data[i+2]<<16) + (data[i+1]<<8) + (data[i]);
|
||||
if(w > 0xFFFF) {
|
||||
w -= 0x10000;
|
||||
out[k++] = String.fromCharCode(0xD800 + ((w >> 10) & 0x3FF));
|
||||
out[k++] = String.fromCharCode(0xDC00 + (w & 0x3FF));
|
||||
}
|
||||
else out[k++] = String.fromCharCode(w);
|
||||
}
|
||||
break;
|
||||
case "utf32be":
|
||||
if(len >= 4 && data[3] == 0xFF) if(data[2] == 0xFE && data[1] === 0 && data[0] === 0) i = 4;
|
||||
j = 4;
|
||||
for(; i < len; i+=j) {
|
||||
w = (data[i]<<24) + (data[i+1]<<16) + (data[i+2]<<8) + (data[i+3]);
|
||||
if(w > 0xFFFF) {
|
||||
w -= 0x10000;
|
||||
out[k++] = String.fromCharCode(0xD800 + ((w >> 10) & 0x3FF));
|
||||
out[k++] = String.fromCharCode(0xDC00 + (w & 0x3FF));
|
||||
}
|
||||
else out[k++] = String.fromCharCode(w);
|
||||
}
|
||||
break;
|
||||
case "utf7":
|
||||
if(len >= 4 && data[0] == 0x2B && data[1] == 0x2F && data[2] == 0x76) {
|
||||
if(len >= 5 && data[3] == 0x38 && data[4] == 0x2D) i = 5;
|
||||
else if(data[3] == 0x38 || data[3] == 0x39 || data[3] == 0x2B || data[3] == 0x2F) i = 4;
|
||||
}
|
||||
for(; i < len; i+=j) {
|
||||
if(data[i] !== 0x2b) { j=1; out[k++] = String.fromCharCode(data[i]); continue; }
|
||||
j=1;
|
||||
if(data[i+1] === 0x2d) { j = 2; out[k++] = "+"; continue; }
|
||||
while(String.fromCharCode(data[i+j]).match(/[A-Za-z0-9+\/]/)) j++;
|
||||
var dash = 0;
|
||||
if(data[i+j] === 0x2d) { ++j; dash=1; }
|
||||
var tt = [];
|
||||
var o64 = "";
|
||||
var c1=0, c2=0, c3=0;
|
||||
var e1=0, e2=0, e3=0, e4=0;
|
||||
for(var l = 1; l < j - dash;) {
|
||||
e1 = BM.indexOf(String.fromCharCode(data[i+l++]));
|
||||
e2 = BM.indexOf(String.fromCharCode(data[i+l++]));
|
||||
c1 = e1 << 2 | e2 >> 4;
|
||||
tt.push(c1);
|
||||
e3 = BM.indexOf(String.fromCharCode(data[i+l++]));
|
||||
if(e3 === -1) break;
|
||||
c2 = (e2 & 15) << 4 | e3 >> 2;
|
||||
tt.push(c2);
|
||||
e4 = BM.indexOf(String.fromCharCode(data[i+l++]));
|
||||
if(e4 === -1) break;
|
||||
c3 = (e3 & 3) << 6 | e4;
|
||||
if(e4 < 64) tt.push(c3);
|
||||
}
|
||||
o64 = decode(1201, tt);
|
||||
for(l = 0; l < o64.length; ++l) out[k++] = o64.charAt(l);
|
||||
}
|
||||
break;
|
||||
default: throw new Error("Unsupported magic: " + cp + " " + magic[cp]);
|
||||
}
|
||||
else throw new Error("Unrecognized CP: " + cp);
|
||||
return out.slice(0,k).join("");
|
||||
};
|
||||
var hascp = function hascp(cp/*:number*/)/*:boolean*/ { return !!(cpt[cp] || magic[cp]); };
|
||||
cpt.utils = { decode: decode, encode: encode, hascp: hascp, magic: magic, cache:cache };
|
||||
return cpt;
|
||||
}));
|
102
cputils.js
102
cputils.js
@ -1,6 +1,7 @@
|
||||
/* cputils.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ft=javascript: */
|
||||
/*jshint newcap: false */
|
||||
(function(root, factory){
|
||||
(function(root, factory) {
|
||||
"use strict";
|
||||
if(typeof cptable === "undefined") {
|
||||
if(typeof require !== "undefined"){
|
||||
@ -27,11 +28,11 @@
|
||||
var magic_cache = [65001];
|
||||
var magic_decode = {};
|
||||
var magic_encode = {};
|
||||
var cpecache = {};
|
||||
var cpdcache = {};
|
||||
var cpecache = {};
|
||||
|
||||
var sfcc = function sfcc(x) { return String.fromCharCode(x); };
|
||||
var cca = function cca(x){ return x.charCodeAt(0); };
|
||||
var cca = function cca(x) { return x.charCodeAt(0); };
|
||||
|
||||
var has_buf = (typeof Buffer !== 'undefined');
|
||||
if(has_buf) {
|
||||
@ -50,12 +51,12 @@
|
||||
var EE = make_EE(cpt[cp].enc);
|
||||
return function sbcs_e(data, ofmt) {
|
||||
var len = data.length;
|
||||
var out, i, j, D, w;
|
||||
var out, i=0, j=0, D=0, w=0;
|
||||
if(typeof data === 'string') {
|
||||
out = Buffer(len);
|
||||
out = new Buffer(len);
|
||||
for(i = 0; i < len; ++i) out[i] = EE[data.charCodeAt(i)];
|
||||
} else if(Buffer.isBuffer(data)) {
|
||||
out = Buffer(2*len);
|
||||
out = new Buffer(2*len);
|
||||
j = 0;
|
||||
for(i = 0; i < len; ++i) {
|
||||
D = data[i];
|
||||
@ -70,24 +71,24 @@
|
||||
}
|
||||
out = out.slice(0,j);
|
||||
} else {
|
||||
out = Buffer(len);
|
||||
out = new Buffer(len);
|
||||
for(i = 0; i < len; ++i) out[i] = EE[data[i].charCodeAt(0)];
|
||||
}
|
||||
if(ofmt === undefined || ofmt === 'buf') return out;
|
||||
if(!ofmt || ofmt === 'buf') return out;
|
||||
if(ofmt !== 'arr') return out.toString('binary');
|
||||
return [].slice.call(out);
|
||||
};
|
||||
};
|
||||
var sbcs_decode = function make_sbcs_decode(cp) {
|
||||
var D = cpt[cp].dec;
|
||||
var DD = new Buffer(131072), d=0, c;
|
||||
var DD = new Buffer(131072), d=0, c="";
|
||||
for(d=0;d<D.length;++d) {
|
||||
if(!(c=D[d])) continue;
|
||||
var w = c.charCodeAt(0);
|
||||
DD[2*d] = w&255; DD[2*d+1] = w>>8;
|
||||
}
|
||||
return function sbcs_d(data) {
|
||||
var len = data.length, i=0, j;
|
||||
var len = data.length, i=0, j=0;
|
||||
if(2 * len > mdl) { mdl = 2 * len; mdb = new Buffer(mdl); }
|
||||
if(Buffer.isBuffer(data)) {
|
||||
for(i = 0; i < len; i++) {
|
||||
@ -119,7 +120,7 @@
|
||||
EE[2*f] = E[e] & 255; EE[2*f+1] = E[e]>>8;
|
||||
}
|
||||
return function dbcs_e(data, ofmt) {
|
||||
var len = data.length, out = new Buffer(2*len), i, j, jj, k, D;
|
||||
var len = data.length, out = new Buffer(2*len), i=0, j=0, jj=0, k=0, D=0;
|
||||
if(typeof data === 'string') {
|
||||
for(i = k = 0; i < len; ++i) {
|
||||
j = data.charCodeAt(i)*2;
|
||||
@ -146,7 +147,7 @@
|
||||
out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];
|
||||
}
|
||||
}
|
||||
if(ofmt === undefined || ofmt === 'buf') return out;
|
||||
if(!ofmt || ofmt === 'buf') return out;
|
||||
if(ofmt !== 'arr') return out.toString('binary');
|
||||
return [].slice.call(out);
|
||||
};
|
||||
@ -162,7 +163,7 @@
|
||||
DD[j] = w&255; DD[j+1] = w>>8;
|
||||
}
|
||||
return function dbcs_d(data) {
|
||||
var len = data.length, out = new Buffer(2*len), i, j, k=0;
|
||||
var len = data.length, out = new Buffer(2*len), i=0, j=0, k=0;
|
||||
if(Buffer.isBuffer(data)) {
|
||||
for(i = 0; i < len; i++) {
|
||||
j = 2*data[i];
|
||||
@ -186,6 +187,7 @@
|
||||
};
|
||||
};
|
||||
magic_decode[65001] = function utf8_d(data) {
|
||||
if(typeof data === "string") return utf8_d(data.split("").map(cca));
|
||||
var len = data.length, w = 0, ww = 0;
|
||||
if(4 * len > mdl) { mdl = 4 * len; mdb = new Buffer(mdl); }
|
||||
var i = 0;
|
||||
@ -205,6 +207,11 @@
|
||||
return mdb.slice(0,k).toString('ucs2');
|
||||
};
|
||||
magic_encode[65001] = function utf8_e(data, ofmt) {
|
||||
if(has_buf && Buffer.isBuffer(data)) {
|
||||
if(!ofmt || ofmt === 'buf') return data;
|
||||
if(ofmt !== 'arr') return data.toString('binary');
|
||||
return [].slice.call(data);
|
||||
}
|
||||
var len = data.length, w = 0, ww = 0, j = 0;
|
||||
var direct = typeof data === "string";
|
||||
if(4 * len > mdl) { mdl = 4 * len; mdb = new Buffer(mdl); }
|
||||
@ -227,7 +234,7 @@
|
||||
mdb[j++] = 128 + (w&63);
|
||||
}
|
||||
}
|
||||
if(ofmt === undefined || ofmt === 'buf') return mdb.slice(0,j);
|
||||
if(!ofmt || ofmt === 'buf') return mdb.slice(0,j);
|
||||
if(ofmt !== 'arr') return mdb.slice(0,j).toString('binary');
|
||||
return [].slice.call(mdb, 0, j);
|
||||
};
|
||||
@ -236,7 +243,7 @@
|
||||
var encache = function encache() {
|
||||
if(has_buf) {
|
||||
if(cpdcache[sbcs_cache[0]]) return;
|
||||
var i, s;
|
||||
var i=0, s=0;
|
||||
for(i = 0; i < sbcs_cache.length; ++i) {
|
||||
s = sbcs_cache[i];
|
||||
if(cpt[s]) {
|
||||
@ -258,7 +265,8 @@
|
||||
}
|
||||
}
|
||||
};
|
||||
var cp_decache = function cp_decache(cp) { cpdcache[cp] = cpecache[cp] = undefined; };
|
||||
var null_enc = function(data, ofmt) { return ""; };
|
||||
var cp_decache = function cp_decache(cp) { delete cpdcache[cp]; delete cpecache[cp]; };
|
||||
var decache = function decache() {
|
||||
if(has_buf) {
|
||||
if(!cpdcache[sbcs_cache[0]]) return;
|
||||
@ -266,7 +274,7 @@
|
||||
dbcs_cache.forEach(cp_decache);
|
||||
magic_cache.forEach(cp_decache);
|
||||
}
|
||||
last_enc = last_cp = undefined;
|
||||
last_enc = null_enc; last_cp = 0;
|
||||
};
|
||||
var cache = {
|
||||
encache: encache,
|
||||
@ -279,21 +287,20 @@
|
||||
|
||||
var BM = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
var SetD = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?";
|
||||
var last_enc, last_cp;
|
||||
var last_enc = null_enc, last_cp = 0;
|
||||
var encode = function encode(cp, data, ofmt) {
|
||||
if(cp === last_cp) { return last_enc(data, ofmt); }
|
||||
if(cpecache[cp] !== undefined) { last_enc = cpecache[last_cp=cp]; return last_enc(data, ofmt); }
|
||||
if(cp === last_cp && last_enc) { return last_enc(data, ofmt); }
|
||||
if(cpecache[cp]) { last_enc = cpecache[last_cp=cp]; return last_enc(data, ofmt); }
|
||||
if(has_buf && Buffer.isBuffer(data)) data = data.toString('utf8');
|
||||
var len = data.length;
|
||||
var out = has_buf ? new Buffer(4*len) : [], w, i, j = 0, c, tt, ww;
|
||||
var C = cpt[cp], E, M;
|
||||
var out = has_buf ? new Buffer(4*len) : [], w=0, i=0, j = 0, ww=0;
|
||||
var C = cpt[cp], E, M = "";
|
||||
if(C && (E=C.enc)) for(i = 0; i < len; ++i, ++j) {
|
||||
w = E[data[i]];
|
||||
out[j] = w&255;
|
||||
if(w > 255) {
|
||||
out[j] = w>>8;
|
||||
out[++j] = w&255;
|
||||
}
|
||||
} else out[j] = w&255;
|
||||
}
|
||||
else if((M=magic[cp])) switch(M) {
|
||||
case "utf8":
|
||||
@ -358,16 +365,16 @@
|
||||
out[j+3] = w&255; w >>= 8;
|
||||
out[j+2] = w&255; w >>= 8;
|
||||
out[j+1] = w&255; w >>= 8;
|
||||
out[j] = w&255; w >>= 8;
|
||||
out[j] = w&255;
|
||||
j+=4;
|
||||
}
|
||||
break;
|
||||
case "utf7":
|
||||
for(i = 0; i < len; i++) {
|
||||
c = data[i];
|
||||
var c = data[i];
|
||||
if(c === "+") { out[j++] = 0x2b; out[j++] = 0x2d; continue; }
|
||||
if(SetD.indexOf(c) > -1) { out[j++] = c.charCodeAt(0); continue; }
|
||||
tt = encode(1201, c);
|
||||
var tt = encode(1201, c);
|
||||
out[j++] = 0x2b;
|
||||
out[j++] = BM.charCodeAt(tt[0]>>2);
|
||||
out[j++] = BM.charCodeAt(((tt[0]&0x03)<<4) + ((tt[1]||0)>>4));
|
||||
@ -379,31 +386,30 @@
|
||||
}
|
||||
else throw new Error("Unrecognized CP: " + cp);
|
||||
out = out.slice(0,j);
|
||||
if(typeof Buffer === 'undefined') return (ofmt == 'str') ? out.map(sfcc).join("") : out;
|
||||
if(ofmt === undefined || ofmt === 'buf') return out;
|
||||
if(!has_buf) return (ofmt == 'str') ? (out).map(sfcc).join("") : out;
|
||||
if(!ofmt || ofmt === 'buf') return out;
|
||||
if(ofmt !== 'arr') return out.toString('binary');
|
||||
return [].slice.call(out);
|
||||
};
|
||||
var decode = function decode(cp, data) {
|
||||
var F; if((F=cpdcache[cp])) return F(data);
|
||||
var len = data.length, out = new Array(len), w, i, j = 1, k = 0, ww;
|
||||
var C = cpt[cp], D, M;
|
||||
if(typeof data === "string") return decode(cp, data.split("").map(cca));
|
||||
var len = data.length, out = new Array(len), s="", w=0, i=0, j=1, k=0, ww=0;
|
||||
var C = cpt[cp], D, M="";
|
||||
if(C && (D=C.dec)) {
|
||||
if(typeof data === "string") data = data.split("").map(cca);
|
||||
for(i = 0; i < len; i+=j) {
|
||||
j = 2;
|
||||
w = D[(data[i]<<8)+ data[i+1]];
|
||||
if(!w) {
|
||||
s = D[(data[i]<<8)+ data[i+1]];
|
||||
if(!s) {
|
||||
j = 1;
|
||||
w = D[data[i]];
|
||||
s = D[data[i]];
|
||||
}
|
||||
if(!w) throw new Error('Unrecognized code: ' + data[i] + ' ' + data[i+j-1] + ' ' + i + ' ' + j + ' ' + D[data[i]]);
|
||||
out[k++] = w;
|
||||
if(!s) throw new Error('Unrecognized code: ' + data[i] + ' ' + data[i+j-1] + ' ' + i + ' ' + j + ' ' + D[data[i]]);
|
||||
out[k++] = s;
|
||||
}
|
||||
}
|
||||
else if((M=magic[cp])) switch(M) {
|
||||
case "utf8":
|
||||
i = 0;
|
||||
if(len >= 3 && data[0] == 0xEF) if(data[1] == 0xBB && data[2] == 0xBF) i = 3;
|
||||
for(; i < len; i+=j) {
|
||||
j = 1;
|
||||
@ -423,24 +429,21 @@
|
||||
for(i = 0; i < len; i++) out[i] = String.fromCharCode(data[i]);
|
||||
k = len; break;
|
||||
case "utf16le":
|
||||
i = 0;
|
||||
if(len >= 2 && data[0] == 0xFF) if(data[1] == 0xFE) i = 2;
|
||||
if(has_buf && Buffer.isBuffer(data)) return data.toString(M);
|
||||
j = 2;
|
||||
for(; i < len; i+=j) {
|
||||
for(; i+1 < len; i+=j) {
|
||||
out[k++] = String.fromCharCode((data[i+1]<<8) + data[i]);
|
||||
}
|
||||
break;
|
||||
case "utf16be":
|
||||
i = 0;
|
||||
if(len >= 2 && data[0] == 0xFE) if(data[1] == 0xFF) i = 2;
|
||||
j = 2;
|
||||
for(; i < len; i+=j) {
|
||||
for(; i+1 < len; i+=j) {
|
||||
out[k++] = String.fromCharCode((data[i]<<8) + data[i+1]);
|
||||
}
|
||||
break;
|
||||
case "utf32le":
|
||||
i = 0;
|
||||
if(len >= 4 && data[0] == 0xFF) if(data[1] == 0xFE && data[2] === 0 && data[3] === 0) i = 4;
|
||||
j = 4;
|
||||
for(; i < len; i+=j) {
|
||||
@ -454,7 +457,6 @@
|
||||
}
|
||||
break;
|
||||
case "utf32be":
|
||||
i = 0;
|
||||
if(len >= 4 && data[3] == 0xFF) if(data[2] == 0xFE && data[1] === 0 && data[0] === 0) i = 4;
|
||||
j = 4;
|
||||
for(; i < len; i+=j) {
|
||||
@ -468,7 +470,6 @@
|
||||
}
|
||||
break;
|
||||
case "utf7":
|
||||
i = 0;
|
||||
if(len >= 4 && data[0] == 0x2B && data[1] == 0x2F && data[2] == 0x76) {
|
||||
if(len >= 5 && data[3] == 0x38 && data[4] == 0x2D) i = 5;
|
||||
else if(data[3] == 0x38 || data[3] == 0x39 || data[3] == 0x2B || data[3] == 0x2F) i = 4;
|
||||
@ -481,9 +482,9 @@
|
||||
var dash = 0;
|
||||
if(data[i+j] === 0x2d) { ++j; dash=1; }
|
||||
var tt = [];
|
||||
var o64;
|
||||
var c1, c2, c3;
|
||||
var e1, e2, e3, e4;
|
||||
var o64 = "";
|
||||
var c1=0, c2=0, c3=0;
|
||||
var e1=0, e2=0, e3=0, e4=0;
|
||||
for(var l = 1; l < j - dash;) {
|
||||
e1 = BM.indexOf(String.fromCharCode(data[i+l++]));
|
||||
e2 = BM.indexOf(String.fromCharCode(data[i+l++]));
|
||||
@ -498,9 +499,8 @@
|
||||
c3 = (e3 & 3) << 6 | e4;
|
||||
if(e4 < 64) tt.push(c3);
|
||||
}
|
||||
if((tt.length & 1) === 1) tt.length--;
|
||||
o64 = decode(1201, tt);
|
||||
for(l = 0; l < o64.length; ++l) out[k++] = o64[l];
|
||||
for(l = 0; l < o64.length; ++l) out[k++] = o64.charAt(l);
|
||||
}
|
||||
break;
|
||||
default: throw new Error("Unsupported magic: " + cp + " " + magic[cp]);
|
||||
@ -508,7 +508,7 @@
|
||||
else throw new Error("Unrecognized CP: " + cp);
|
||||
return out.slice(0,k).join("");
|
||||
};
|
||||
var hascp = function hascp(cp) { return cpt[cp] || magic[cp]; };
|
||||
var hascp = function hascp(cp) { return !!(cpt[cp] || magic[cp]); };
|
||||
cpt.utils = { decode: decode, encode: encode, hascp: hascp, magic: magic, cache:cache };
|
||||
return cpt;
|
||||
}));
|
||||
|
File diff suppressed because one or more lines are too long
2
dist/cpexcel.js
vendored
2
dist/cpexcel.js
vendored
@ -1,6 +1,6 @@
|
||||
/* cpexcel.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
||||
/*jshint -W100 */
|
||||
var cptable = {version:"1.4.0"};
|
||||
var cptable = {version:"1.5.0"};
|
||||
cptable[874] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F><E282AC><EFBFBD><EFBFBD>…<EFBFBD><E280A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>‘’“”•–—<E28093><E28094><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู<E0B8B9><E0B8BA><EFBFBD><EFBFBD>฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛<E0B99A><E0B99B><EFBFBD><EFBFBD>", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[932] = (function(){ var d = [], e = {}, D = [], j;
|
||||
D[0] = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚<EFBE9E><EFBE9F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>".split("");
|
||||
|
7
dist/cptable.js
vendored
7
dist/cptable.js
vendored
@ -1,6 +1,6 @@
|
||||
/* cptable.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
||||
/*jshint -W100 */
|
||||
var cptable = {version:"1.4.0"};
|
||||
var cptable = {version:"1.5.0"};
|
||||
cptable[37] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ¢.<(+|&éêëèíîïìß!$*);¬-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ¤µ~stuvwxyz¡¿ÐÝÞ®^£¥·©§¶¼½¾[]¯¨´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[437] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[500] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ[.<(+!&éêëèíîïìß]$*);^-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ¤µ~stuvwxyz¡¿ÐÝÞ®¢£¥·©§¶¼½¾¬|¯¨´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
@ -810,6 +810,7 @@ cptable[1255] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006
|
||||
cptable[1256] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œں ،¢£¤¥¦§¨©ھ«¬®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûüے", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1257] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚<EFBFBD>„…†‡<E280A0>‰<EFBFBD>‹<EFBFBD>¨ˇ¸<CB87>‘’“”•–—<E28093>™<EFBFBD>›<EFBFBD>¯˛<C2AF> <EFBFBD>¢£¤<C2A3>¦§Ø©Ŗ«¬®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1258] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰<CB86>‹Œ<E280B9><C592><EFBFBD><EFBFBD>‘’“”•–—˜™<CB9C>›œ<E280BA><C593>Ÿ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[47451] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥ßƒáíóúñѪº¿⌐¬½¼¡«»ãõØøœŒÀÃÕ¨´†¶©®™ijIJאבגדהוזחטיכלמנסעפצקרשתןךםףץ§∧∞αβΓπΣσµτΦΘΩδ∮φ∈∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²³¯", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[10000] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ<C393>ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[10006] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ<CE90>", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[10007] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
@ -833,9 +834,13 @@ cptable[28605] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u000
|
||||
cptable[28606] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~
ĄąŁ€„Š§š©Ș«ŹźŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[708] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~│┤éâ╡à╢çêëèïî╖╕╣║╗╝ô╜╛ûù┐└┴┬├¤─┼╞╟╚╔╩،╦«»░▒▓╠═╬╧╨╤╥╙؛╘╒╓؟╫ءآأؤإئابةتثجحخدذرزسشصضطظعغ█▄▌▐▀ـفقكلمنهوىيًٌٍَُِّْ╪┘┌µ£■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[720] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~éâàçêëèïîّْô¤ـûùءآأؤ£إئابةتثجحخدذرزسشص«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ضطظعغفµقكلمنهوىي≡ًٌٍَُِ≈°∙·√ⁿ²■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[808] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[858] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´±‗¾¶§÷¸°¨·¹³²■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[870] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäţáăčçć[.<(+!&éęëůíîľĺß]$*);^-/ÂÄ˝ÁĂČÇĆ|,%_>?ˇÉĘËŮÍÎĽĹ`:#@'=\"˘abcdefghiśňđýřş°jklmnopqrłńš¸˛¤ą~stuvwxyzŚŇĐÝŘŞ˙ĄżŢŻ§žźŽŹŁŃŠ¨´×{ABCDEFGHIôöŕóő}JKLMNOPQRĚűüťúě\\÷STUVWXYZďÔÖŔÓŐ0123456789ĎŰÜŤÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[872] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬€лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№ыЫзЗшШэЭщЩчЧ§■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1010] = (function(){ var d = "<22>\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"£$%&’()*+,-./0123456789:;<=>?àABCDEFGHIJKLMNOPQRSTUVWXYZ°ç§ˆ_µabcdefghijklmnopqrstuvwxyzéùè¨<C3A8><C2A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1047] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\n\b\u0018\u0019\u001c\u001d\u001e\u001f
\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ¢.<(+|&éêëèíîïìß!$*);^-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ¤µ~stuvwxyz¡¿Ð[Þ®¬£¥·©§¶¼½¾Ý¨¯]´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1132] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ<E0BAAD><E0BAAE><EFBFBD>ຯະາຳິີຶືຸູຼັົຽ<E0BABB><E0BABD><EFBFBD>ເແໂໃໄ່້໊໋໌ໍໆ<E0BB8D>ໜໝ₭<E0BB9D><E282AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>໐໑໒໓໔໕໖໗໘໙<E0BB98><E0BB99>¢¬¦ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1140] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ¢.<(+|&éêëèíîïìß!$*);¬-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ€µ~stuvwxyz¡¿ÐÝÞ®^£¥·©§¶¼½¾[]¯¨´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1141] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a â{àáãåçñÄ.<(+!&éêëèíîïì~Ü$*);^-/Â[ÀÁÃÅÇÑö,%_>?øÉÊËÈÍÎÏÌ`:#§'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ€µßstuvwxyz¡¿ÐÝÞ®¢£¥·©@¶¼½¾¬|¯¨´×äABCDEFGHIô¦òóõüJKLMNOPQR¹û}ùúÿÖ÷STUVWXYZ²Ô\\ÒÓÕ0123456789³Û]ÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1142] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáã}çñ#.<(+!&éêëèíîïì߀Å*);^-/ÂÄÀÁÃ$ÇÑø,%_>?¦ÉÊËÈÍÎÏÌ`:ÆØ'=\"@abcdefghi«»ðýþ±°jklmnopqrªº{¸[]µüstuvwxyz¡¿ÐÝÞ®¢£¥·©§¶¼½¾¬|¯¨´×æABCDEFGHIôöòóõåJKLMNOPQR¹û~ùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
|
102
dist/cputils.js
vendored
102
dist/cputils.js
vendored
@ -1,6 +1,7 @@
|
||||
/* cputils.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ft=javascript: */
|
||||
/*jshint newcap: false */
|
||||
(function(root, factory){
|
||||
(function(root, factory) {
|
||||
"use strict";
|
||||
if(typeof cptable === "undefined") {
|
||||
if(typeof require !== "undefined"){
|
||||
@ -27,11 +28,11 @@
|
||||
var magic_cache = [65001];
|
||||
var magic_decode = {};
|
||||
var magic_encode = {};
|
||||
var cpecache = {};
|
||||
var cpdcache = {};
|
||||
var cpecache = {};
|
||||
|
||||
var sfcc = function sfcc(x) { return String.fromCharCode(x); };
|
||||
var cca = function cca(x){ return x.charCodeAt(0); };
|
||||
var cca = function cca(x) { return x.charCodeAt(0); };
|
||||
|
||||
var has_buf = (typeof Buffer !== 'undefined');
|
||||
if(has_buf) {
|
||||
@ -50,12 +51,12 @@
|
||||
var EE = make_EE(cpt[cp].enc);
|
||||
return function sbcs_e(data, ofmt) {
|
||||
var len = data.length;
|
||||
var out, i, j, D, w;
|
||||
var out, i=0, j=0, D=0, w=0;
|
||||
if(typeof data === 'string') {
|
||||
out = Buffer(len);
|
||||
out = new Buffer(len);
|
||||
for(i = 0; i < len; ++i) out[i] = EE[data.charCodeAt(i)];
|
||||
} else if(Buffer.isBuffer(data)) {
|
||||
out = Buffer(2*len);
|
||||
out = new Buffer(2*len);
|
||||
j = 0;
|
||||
for(i = 0; i < len; ++i) {
|
||||
D = data[i];
|
||||
@ -70,24 +71,24 @@
|
||||
}
|
||||
out = out.slice(0,j);
|
||||
} else {
|
||||
out = Buffer(len);
|
||||
out = new Buffer(len);
|
||||
for(i = 0; i < len; ++i) out[i] = EE[data[i].charCodeAt(0)];
|
||||
}
|
||||
if(ofmt === undefined || ofmt === 'buf') return out;
|
||||
if(!ofmt || ofmt === 'buf') return out;
|
||||
if(ofmt !== 'arr') return out.toString('binary');
|
||||
return [].slice.call(out);
|
||||
};
|
||||
};
|
||||
var sbcs_decode = function make_sbcs_decode(cp) {
|
||||
var D = cpt[cp].dec;
|
||||
var DD = new Buffer(131072), d=0, c;
|
||||
var DD = new Buffer(131072), d=0, c="";
|
||||
for(d=0;d<D.length;++d) {
|
||||
if(!(c=D[d])) continue;
|
||||
var w = c.charCodeAt(0);
|
||||
DD[2*d] = w&255; DD[2*d+1] = w>>8;
|
||||
}
|
||||
return function sbcs_d(data) {
|
||||
var len = data.length, i=0, j;
|
||||
var len = data.length, i=0, j=0;
|
||||
if(2 * len > mdl) { mdl = 2 * len; mdb = new Buffer(mdl); }
|
||||
if(Buffer.isBuffer(data)) {
|
||||
for(i = 0; i < len; i++) {
|
||||
@ -119,7 +120,7 @@
|
||||
EE[2*f] = E[e] & 255; EE[2*f+1] = E[e]>>8;
|
||||
}
|
||||
return function dbcs_e(data, ofmt) {
|
||||
var len = data.length, out = new Buffer(2*len), i, j, jj, k, D;
|
||||
var len = data.length, out = new Buffer(2*len), i=0, j=0, jj=0, k=0, D=0;
|
||||
if(typeof data === 'string') {
|
||||
for(i = k = 0; i < len; ++i) {
|
||||
j = data.charCodeAt(i)*2;
|
||||
@ -146,7 +147,7 @@
|
||||
out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];
|
||||
}
|
||||
}
|
||||
if(ofmt === undefined || ofmt === 'buf') return out;
|
||||
if(!ofmt || ofmt === 'buf') return out;
|
||||
if(ofmt !== 'arr') return out.toString('binary');
|
||||
return [].slice.call(out);
|
||||
};
|
||||
@ -162,7 +163,7 @@
|
||||
DD[j] = w&255; DD[j+1] = w>>8;
|
||||
}
|
||||
return function dbcs_d(data) {
|
||||
var len = data.length, out = new Buffer(2*len), i, j, k=0;
|
||||
var len = data.length, out = new Buffer(2*len), i=0, j=0, k=0;
|
||||
if(Buffer.isBuffer(data)) {
|
||||
for(i = 0; i < len; i++) {
|
||||
j = 2*data[i];
|
||||
@ -186,6 +187,7 @@
|
||||
};
|
||||
};
|
||||
magic_decode[65001] = function utf8_d(data) {
|
||||
if(typeof data === "string") return utf8_d(data.split("").map(cca));
|
||||
var len = data.length, w = 0, ww = 0;
|
||||
if(4 * len > mdl) { mdl = 4 * len; mdb = new Buffer(mdl); }
|
||||
var i = 0;
|
||||
@ -205,6 +207,11 @@
|
||||
return mdb.slice(0,k).toString('ucs2');
|
||||
};
|
||||
magic_encode[65001] = function utf8_e(data, ofmt) {
|
||||
if(has_buf && Buffer.isBuffer(data)) {
|
||||
if(!ofmt || ofmt === 'buf') return data;
|
||||
if(ofmt !== 'arr') return data.toString('binary');
|
||||
return [].slice.call(data);
|
||||
}
|
||||
var len = data.length, w = 0, ww = 0, j = 0;
|
||||
var direct = typeof data === "string";
|
||||
if(4 * len > mdl) { mdl = 4 * len; mdb = new Buffer(mdl); }
|
||||
@ -227,7 +234,7 @@
|
||||
mdb[j++] = 128 + (w&63);
|
||||
}
|
||||
}
|
||||
if(ofmt === undefined || ofmt === 'buf') return mdb.slice(0,j);
|
||||
if(!ofmt || ofmt === 'buf') return mdb.slice(0,j);
|
||||
if(ofmt !== 'arr') return mdb.slice(0,j).toString('binary');
|
||||
return [].slice.call(mdb, 0, j);
|
||||
};
|
||||
@ -236,7 +243,7 @@
|
||||
var encache = function encache() {
|
||||
if(has_buf) {
|
||||
if(cpdcache[sbcs_cache[0]]) return;
|
||||
var i, s;
|
||||
var i=0, s=0;
|
||||
for(i = 0; i < sbcs_cache.length; ++i) {
|
||||
s = sbcs_cache[i];
|
||||
if(cpt[s]) {
|
||||
@ -258,7 +265,8 @@
|
||||
}
|
||||
}
|
||||
};
|
||||
var cp_decache = function cp_decache(cp) { cpdcache[cp] = cpecache[cp] = undefined; };
|
||||
var null_enc = function(data, ofmt) { return ""; };
|
||||
var cp_decache = function cp_decache(cp) { delete cpdcache[cp]; delete cpecache[cp]; };
|
||||
var decache = function decache() {
|
||||
if(has_buf) {
|
||||
if(!cpdcache[sbcs_cache[0]]) return;
|
||||
@ -266,7 +274,7 @@
|
||||
dbcs_cache.forEach(cp_decache);
|
||||
magic_cache.forEach(cp_decache);
|
||||
}
|
||||
last_enc = last_cp = undefined;
|
||||
last_enc = null_enc; last_cp = 0;
|
||||
};
|
||||
var cache = {
|
||||
encache: encache,
|
||||
@ -279,21 +287,20 @@
|
||||
|
||||
var BM = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
var SetD = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?";
|
||||
var last_enc, last_cp;
|
||||
var last_enc = null_enc, last_cp = 0;
|
||||
var encode = function encode(cp, data, ofmt) {
|
||||
if(cp === last_cp) { return last_enc(data, ofmt); }
|
||||
if(cpecache[cp] !== undefined) { last_enc = cpecache[last_cp=cp]; return last_enc(data, ofmt); }
|
||||
if(cp === last_cp && last_enc) { return last_enc(data, ofmt); }
|
||||
if(cpecache[cp]) { last_enc = cpecache[last_cp=cp]; return last_enc(data, ofmt); }
|
||||
if(has_buf && Buffer.isBuffer(data)) data = data.toString('utf8');
|
||||
var len = data.length;
|
||||
var out = has_buf ? new Buffer(4*len) : [], w, i, j = 0, c, tt, ww;
|
||||
var C = cpt[cp], E, M;
|
||||
var out = has_buf ? new Buffer(4*len) : [], w=0, i=0, j = 0, ww=0;
|
||||
var C = cpt[cp], E, M = "";
|
||||
if(C && (E=C.enc)) for(i = 0; i < len; ++i, ++j) {
|
||||
w = E[data[i]];
|
||||
out[j] = w&255;
|
||||
if(w > 255) {
|
||||
out[j] = w>>8;
|
||||
out[++j] = w&255;
|
||||
}
|
||||
} else out[j] = w&255;
|
||||
}
|
||||
else if((M=magic[cp])) switch(M) {
|
||||
case "utf8":
|
||||
@ -358,16 +365,16 @@
|
||||
out[j+3] = w&255; w >>= 8;
|
||||
out[j+2] = w&255; w >>= 8;
|
||||
out[j+1] = w&255; w >>= 8;
|
||||
out[j] = w&255; w >>= 8;
|
||||
out[j] = w&255;
|
||||
j+=4;
|
||||
}
|
||||
break;
|
||||
case "utf7":
|
||||
for(i = 0; i < len; i++) {
|
||||
c = data[i];
|
||||
var c = data[i];
|
||||
if(c === "+") { out[j++] = 0x2b; out[j++] = 0x2d; continue; }
|
||||
if(SetD.indexOf(c) > -1) { out[j++] = c.charCodeAt(0); continue; }
|
||||
tt = encode(1201, c);
|
||||
var tt = encode(1201, c);
|
||||
out[j++] = 0x2b;
|
||||
out[j++] = BM.charCodeAt(tt[0]>>2);
|
||||
out[j++] = BM.charCodeAt(((tt[0]&0x03)<<4) + ((tt[1]||0)>>4));
|
||||
@ -379,31 +386,30 @@
|
||||
}
|
||||
else throw new Error("Unrecognized CP: " + cp);
|
||||
out = out.slice(0,j);
|
||||
if(typeof Buffer === 'undefined') return (ofmt == 'str') ? out.map(sfcc).join("") : out;
|
||||
if(ofmt === undefined || ofmt === 'buf') return out;
|
||||
if(!has_buf) return (ofmt == 'str') ? (out).map(sfcc).join("") : out;
|
||||
if(!ofmt || ofmt === 'buf') return out;
|
||||
if(ofmt !== 'arr') return out.toString('binary');
|
||||
return [].slice.call(out);
|
||||
};
|
||||
var decode = function decode(cp, data) {
|
||||
var F; if((F=cpdcache[cp])) return F(data);
|
||||
var len = data.length, out = new Array(len), w, i, j = 1, k = 0, ww;
|
||||
var C = cpt[cp], D, M;
|
||||
if(typeof data === "string") return decode(cp, data.split("").map(cca));
|
||||
var len = data.length, out = new Array(len), s="", w=0, i=0, j=1, k=0, ww=0;
|
||||
var C = cpt[cp], D, M="";
|
||||
if(C && (D=C.dec)) {
|
||||
if(typeof data === "string") data = data.split("").map(cca);
|
||||
for(i = 0; i < len; i+=j) {
|
||||
j = 2;
|
||||
w = D[(data[i]<<8)+ data[i+1]];
|
||||
if(!w) {
|
||||
s = D[(data[i]<<8)+ data[i+1]];
|
||||
if(!s) {
|
||||
j = 1;
|
||||
w = D[data[i]];
|
||||
s = D[data[i]];
|
||||
}
|
||||
if(!w) throw new Error('Unrecognized code: ' + data[i] + ' ' + data[i+j-1] + ' ' + i + ' ' + j + ' ' + D[data[i]]);
|
||||
out[k++] = w;
|
||||
if(!s) throw new Error('Unrecognized code: ' + data[i] + ' ' + data[i+j-1] + ' ' + i + ' ' + j + ' ' + D[data[i]]);
|
||||
out[k++] = s;
|
||||
}
|
||||
}
|
||||
else if((M=magic[cp])) switch(M) {
|
||||
case "utf8":
|
||||
i = 0;
|
||||
if(len >= 3 && data[0] == 0xEF) if(data[1] == 0xBB && data[2] == 0xBF) i = 3;
|
||||
for(; i < len; i+=j) {
|
||||
j = 1;
|
||||
@ -423,24 +429,21 @@
|
||||
for(i = 0; i < len; i++) out[i] = String.fromCharCode(data[i]);
|
||||
k = len; break;
|
||||
case "utf16le":
|
||||
i = 0;
|
||||
if(len >= 2 && data[0] == 0xFF) if(data[1] == 0xFE) i = 2;
|
||||
if(has_buf && Buffer.isBuffer(data)) return data.toString(M);
|
||||
j = 2;
|
||||
for(; i < len; i+=j) {
|
||||
for(; i+1 < len; i+=j) {
|
||||
out[k++] = String.fromCharCode((data[i+1]<<8) + data[i]);
|
||||
}
|
||||
break;
|
||||
case "utf16be":
|
||||
i = 0;
|
||||
if(len >= 2 && data[0] == 0xFE) if(data[1] == 0xFF) i = 2;
|
||||
j = 2;
|
||||
for(; i < len; i+=j) {
|
||||
for(; i+1 < len; i+=j) {
|
||||
out[k++] = String.fromCharCode((data[i]<<8) + data[i+1]);
|
||||
}
|
||||
break;
|
||||
case "utf32le":
|
||||
i = 0;
|
||||
if(len >= 4 && data[0] == 0xFF) if(data[1] == 0xFE && data[2] === 0 && data[3] === 0) i = 4;
|
||||
j = 4;
|
||||
for(; i < len; i+=j) {
|
||||
@ -454,7 +457,6 @@
|
||||
}
|
||||
break;
|
||||
case "utf32be":
|
||||
i = 0;
|
||||
if(len >= 4 && data[3] == 0xFF) if(data[2] == 0xFE && data[1] === 0 && data[0] === 0) i = 4;
|
||||
j = 4;
|
||||
for(; i < len; i+=j) {
|
||||
@ -468,7 +470,6 @@
|
||||
}
|
||||
break;
|
||||
case "utf7":
|
||||
i = 0;
|
||||
if(len >= 4 && data[0] == 0x2B && data[1] == 0x2F && data[2] == 0x76) {
|
||||
if(len >= 5 && data[3] == 0x38 && data[4] == 0x2D) i = 5;
|
||||
else if(data[3] == 0x38 || data[3] == 0x39 || data[3] == 0x2B || data[3] == 0x2F) i = 4;
|
||||
@ -481,9 +482,9 @@
|
||||
var dash = 0;
|
||||
if(data[i+j] === 0x2d) { ++j; dash=1; }
|
||||
var tt = [];
|
||||
var o64;
|
||||
var c1, c2, c3;
|
||||
var e1, e2, e3, e4;
|
||||
var o64 = "";
|
||||
var c1=0, c2=0, c3=0;
|
||||
var e1=0, e2=0, e3=0, e4=0;
|
||||
for(var l = 1; l < j - dash;) {
|
||||
e1 = BM.indexOf(String.fromCharCode(data[i+l++]));
|
||||
e2 = BM.indexOf(String.fromCharCode(data[i+l++]));
|
||||
@ -498,9 +499,8 @@
|
||||
c3 = (e3 & 3) << 6 | e4;
|
||||
if(e4 < 64) tt.push(c3);
|
||||
}
|
||||
if((tt.length & 1) === 1) tt.length--;
|
||||
o64 = decode(1201, tt);
|
||||
for(l = 0; l < o64.length; ++l) out[k++] = o64[l];
|
||||
for(l = 0; l < o64.length; ++l) out[k++] = o64.charAt(l);
|
||||
}
|
||||
break;
|
||||
default: throw new Error("Unsupported magic: " + cp + " " + magic[cp]);
|
||||
@ -508,7 +508,7 @@
|
||||
else throw new Error("Unrecognized CP: " + cp);
|
||||
return out.slice(0,k).join("");
|
||||
};
|
||||
var hascp = function hascp(cp) { return cpt[cp] || magic[cp]; };
|
||||
var hascp = function hascp(cp) { return !!(cpt[cp] || magic[cp]); };
|
||||
cpt.utils = { decode: decode, encode: encode, hascp: hascp, magic: magic, cache:cache };
|
||||
return cpt;
|
||||
}));
|
||||
|
7
dist/sbcs.js
vendored
7
dist/sbcs.js
vendored
@ -1,6 +1,6 @@
|
||||
/* sbcs.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
||||
/*jshint -W100 */
|
||||
var cptable = {version:"1.4.0"};
|
||||
var cptable = {version:"1.5.0"};
|
||||
cptable[37] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ¢.<(+|&éêëèíîïìß!$*);¬-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ¤µ~stuvwxyz¡¿ÐÝÞ®^£¥·©§¶¼½¾[]¯¨´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[437] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[500] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ[.<(+!&éêëèíîïìß]$*);^-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ¤µ~stuvwxyz¡¿ÐÝÞ®¢£¥·©§¶¼½¾¬|¯¨´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
@ -30,6 +30,7 @@ cptable[1255] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006
|
||||
cptable[1256] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œں ،¢£¤¥¦§¨©ھ«¬®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûüے", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1257] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚<EFBFBD>„…†‡<E280A0>‰<EFBFBD>‹<EFBFBD>¨ˇ¸<CB87>‘’“”•–—<E28093>™<EFBFBD>›<EFBFBD>¯˛<C2AF> <EFBFBD>¢£¤<C2A3>¦§Ø©Ŗ«¬®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1258] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰<CB86>‹Œ<E280B9><C592><EFBFBD><EFBFBD>‘’“”•–—˜™<CB9C>›œ<E280BA><C593>Ÿ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[47451] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥ßƒáíóúñѪº¿⌐¬½¼¡«»ãõØøœŒÀÃÕ¨´†¶©®™ijIJאבגדהוזחטיכלמנסעפצקרשתןךםףץ§∧∞αβΓπΣσµτΦΘΩδ∮φ∈∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²³¯", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[10000] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ<C393>ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[10006] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ<CE90>", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[10007] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
@ -53,9 +54,13 @@ cptable[28605] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u000
|
||||
cptable[28606] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~
ĄąŁ€„Š§š©Ș«ŹźŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[708] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~│┤éâ╡à╢çêëèïî╖╕╣║╗╝ô╜╛ûù┐└┴┬├¤─┼╞╟╚╔╩،╦«»░▒▓╠═╬╧╨╤╥╙؛╘╒╓؟╫ءآأؤإئابةتثجحخدذرزسشصضطظعغ█▄▌▐▀ـفقكلمنهوىيًٌٍَُِّْ╪┘┌µ£■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[720] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~éâàçêëèïîّْô¤ـûùءآأؤ£إئابةتثجحخدذرزسشص«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ضطظعغفµقكلمنهوىي≡ًٌٍَُِ≈°∙·√ⁿ²■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[808] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[858] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´±‗¾¶§÷¸°¨·¹³²■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[870] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäţáăčçć[.<(+!&éęëůíîľĺß]$*);^-/ÂÄ˝ÁĂČÇĆ|,%_>?ˇÉĘËŮÍÎĽĹ`:#@'=\"˘abcdefghiśňđýřş°jklmnopqrłńš¸˛¤ą~stuvwxyzŚŇĐÝŘŞ˙ĄżŢŻ§žźŽŹŁŃŠ¨´×{ABCDEFGHIôöŕóő}JKLMNOPQRĚűüťúě\\÷STUVWXYZďÔÖŔÓŐ0123456789ĎŰÜŤÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[872] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬€лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№ыЫзЗшШэЭщЩчЧ§■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1010] = (function(){ var d = "<22>\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"£$%&’()*+,-./0123456789:;<=>?àABCDEFGHIJKLMNOPQRSTUVWXYZ°ç§ˆ_µabcdefghijklmnopqrstuvwxyzéùè¨<C3A8><C2A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1047] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\n\b\u0018\u0019\u001c\u001d\u001e\u001f
\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ¢.<(+|&éêëèíîïìß!$*);^-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ¤µ~stuvwxyz¡¿Ð[Þ®¬£¥·©§¶¼½¾Ý¨¯]´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1132] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ<E0BAAD><E0BAAE><EFBFBD>ຯະາຳິີຶືຸູຼັົຽ<E0BABB><E0BABD><EFBFBD>ເແໂໃໄ່້໊໋໌ໍໆ<E0BB8D>ໜໝ₭<E0BB9D><E282AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>໐໑໒໓໔໕໖໗໘໙<E0BB98><E0BB99>¢¬¦ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1140] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ¢.<(+|&éêëèíîïìß!$*);¬-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ€µ~stuvwxyz¡¿ÐÝÞ®^£¥·©§¶¼½¾[]¯¨´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1141] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a â{àáãåçñÄ.<(+!&éêëèíîïì~Ü$*);^-/Â[ÀÁÃÅÇÑö,%_>?øÉÊËÈÍÎÏÌ`:#§'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ€µßstuvwxyz¡¿ÐÝÞ®¢£¥·©@¶¼½¾¬|¯¨´×äABCDEFGHIô¦òóõüJKLMNOPQR¹û}ùúÿÖ÷STUVWXYZ²Ô\\ÒÓÕ0123456789³Û]ÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1142] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáã}çñ#.<(+!&éêëèíîïì߀Å*);^-/ÂÄÀÁÃ$ÇÑø,%_>?¦ÉÊËÈÍÎÏÌ`:ÆØ'=\"@abcdefghi«»ðýþ±°jklmnopqrªº{¸[]µüstuvwxyz¡¿ÐÝÞ®¢£¥·©§¶¼½¾¬|¯¨´×æABCDEFGHIôöòóõåJKLMNOPQR¹û~ùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
|
@ -47,27 +47,33 @@ appropriate codepage scripts were loaded.
|
||||
|
||||
## Usage
|
||||
|
||||
The codepages are indexed by number. To get the unicode character for a given
|
||||
Most codepages are indexed by number. To get the unicode character for a given
|
||||
codepoint, use the `dec` property:
|
||||
|
||||
var unicode_cp10000_255 = cptable[10000].dec[255]; //
|
||||
```js
|
||||
var unicode_cp10000_255 = cptable[10000].dec[255]; //
|
||||
```
|
||||
|
||||
To get the codepoint for a given character, use the `enc` property:
|
||||
|
||||
var cp10000_711 = cptable[10000].enc[String.fromCharCode(711)]; // 255
|
||||
```js
|
||||
var cp10000_711 = cptable[10000].enc[String.fromCharCode(711)]; // 255
|
||||
```
|
||||
|
||||
There are a few utilities that deal with strings and buffers:
|
||||
|
||||
var = cptable.utils.decode(936, [0xbb,0xe3,0xd7,0xdc]);
|
||||
var buf = cptable.utils.encode(936, );
|
||||
var sushi= cptable.utils.decode(65001, [0xf0,0x9f,0x8d,0xa3]); //
|
||||
var sbuf = cptable.utils.encode(65001, sushi);
|
||||
```js
|
||||
var = cptable.utils.decode(936, [0xbb,0xe3,0xd7,0xdc]);
|
||||
var buf = cptable.utils.encode(936, );
|
||||
var sushi= cptable.utils.decode(65001, [0xf0,0x9f,0x8d,0xa3]); //
|
||||
var sbuf = cptable.utils.encode(65001, sushi);
|
||||
```
|
||||
|
||||
`cptable.utils.encode(CP, data, ofmt)` accepts a String or Array of characters
|
||||
and returns a representation controlled by `ofmt`:
|
||||
|
||||
- Default output is a Buffer (or Array) of bytes (integers between 0 and 255).
|
||||
- If `ofmt == 'str'`, return a String where `o.charCodeAt(i)` is the ith byte
|
||||
- If `ofmt == 'str'`, return a String where `o.charCodeAt(i)` is the `i`-th byte
|
||||
- If `ofmt == 'arr'`, return an Array of bytes
|
||||
|
||||
## Known Excel Codepages
|
||||
@ -79,7 +85,9 @@ needed.
|
||||
|
||||
In node:
|
||||
|
||||
var cptable = require('codepage/dist/cpexcel.full');
|
||||
```js
|
||||
var cptable = require('codepage/dist/cpexcel.full');
|
||||
```
|
||||
|
||||
## Rolling your own script
|
||||
|
||||
@ -87,7 +95,9 @@ The `make.sh` script in the repo can take a manifest and generate JS source.
|
||||
|
||||
Usage:
|
||||
|
||||
bash make.sh path_to_manifest output_file_name JSVAR
|
||||
```bash
|
||||
bash make.sh path_to_manifest output_file_name JSVAR
|
||||
```
|
||||
|
||||
where
|
||||
|
||||
@ -119,171 +129,187 @@ the JS source is `codepage.md`, so building is as simple as `voc codepage.md`.
|
||||
The complete list of hardcoded codepages can be found in the file `pages.csv`.
|
||||
|
||||
Some codepages are easier to implement algorithmically. Since these are
|
||||
hardcoded in utils, there is no corresponding entry (they are "magic")
|
||||
hardcoded in `utils`, there is no corresponding entry (they are "magic").
|
||||
|
||||
| CP# | Information | Description |
|
||||
| --: | :----------: | :---------- |
|
||||
| 37| unicode.org |IBM EBCDIC US-Canada
|
||||
| 437| unicode.org |OEM United States
|
||||
| 500| unicode.org |IBM EBCDIC International
|
||||
| 620| NLS |Mazovia (Polish) MS-DOS
|
||||
| 708|MakeEncoding.cs|Arabic (ASMO 708)
|
||||
| 720|MakeEncoding.cs|Arabic (Transparent ASMO); Arabic (DOS)
|
||||
| 737| unicode.org |OEM Greek (formerly 437G); Greek (DOS)
|
||||
| 775| unicode.org |OEM Baltic; Baltic (DOS)
|
||||
| 850| unicode.org |OEM Multilingual Latin 1; Western European (DOS)
|
||||
| 852| unicode.org |OEM Latin 2; Central European (DOS)
|
||||
| 855| unicode.org |OEM Cyrillic (primarily Russian)
|
||||
| 857| unicode.org |OEM Turkish; Turkish (DOS)
|
||||
| 858|MakeEncoding.cs|OEM Multilingual Latin 1 + Euro symbol
|
||||
| 860| unicode.org |OEM Portuguese; Portuguese (DOS)
|
||||
| 861| unicode.org |OEM Icelandic; Icelandic (DOS)
|
||||
| 862| unicode.org |OEM Hebrew; Hebrew (DOS)
|
||||
| 863| unicode.org |OEM French Canadian; French Canadian (DOS)
|
||||
| 864| unicode.org |OEM Arabic; Arabic (864)
|
||||
| 865| unicode.org |OEM Nordic; Nordic (DOS)
|
||||
| 866| unicode.org |OEM Russian; Cyrillic (DOS)
|
||||
| 869| unicode.org |OEM Modern Greek; Greek, Modern (DOS)
|
||||
| 870|MakeEncoding.cs|IBM EBCDIC Multilingual/ROECE (Latin 2)
|
||||
| 874| unicode.org |Windows Thai
|
||||
| 875| unicode.org |IBM EBCDIC Greek Modern
|
||||
| 895| NLS |Kamenick (Czech) MS-DOS
|
||||
| 932| unicode.org |Japanese Shift-JIS
|
||||
| 936| unicode.org |Simplified Chinese GBK
|
||||
| 949| unicode.org |Korean
|
||||
| 950| unicode.org |Traditional Chinese Big5
|
||||
| 1026| unicode.org |IBM EBCDIC Turkish (Latin 5)
|
||||
| 1047|MakeEncoding.cs|IBM EBCDIC Latin 1/Open System
|
||||
| 1140|MakeEncoding.cs|IBM EBCDIC US-Canada (037 + Euro symbol)
|
||||
| 1141|MakeEncoding.cs|IBM EBCDIC Germany (20273 + Euro symbol)
|
||||
| 1142|MakeEncoding.cs|IBM EBCDIC Denmark-Norway (20277 + Euro symbol)
|
||||
| 1143|MakeEncoding.cs|IBM EBCDIC Finland-Sweden (20278 + Euro symbol)
|
||||
| 1144|MakeEncoding.cs|IBM EBCDIC Italy (20280 + Euro symbol)
|
||||
| 1145|MakeEncoding.cs|IBM EBCDIC Latin America-Spain (20284 + Euro symbol)
|
||||
| 1146|MakeEncoding.cs|IBM EBCDIC United Kingdom (20285 + Euro symbol)
|
||||
| 1147|MakeEncoding.cs|IBM EBCDIC France (20297 + Euro symbol)
|
||||
| 1148|MakeEncoding.cs|IBM EBCDIC International (500 + Euro symbol)
|
||||
| 1149|MakeEncoding.cs|IBM EBCDIC Icelandic (20871 + Euro symbol)
|
||||
| 1200| magic |Unicode UTF-16, little endian (BMP of ISO 10646)
|
||||
| 1201| magic |Unicode UTF-16, big endian
|
||||
| 1250| unicode.org |Windows Central Europe
|
||||
| 1251| unicode.org |Windows Cyrillic
|
||||
| 1252| unicode.org |Windows Latin I
|
||||
| 1253| unicode.org |Windows Greek
|
||||
| 1254| unicode.org |Windows Turkish
|
||||
| 1255| unicode.org |Windows Hebrew
|
||||
| 1256| unicode.org |Windows Arabic
|
||||
| 1257| unicode.org |Windows Baltic
|
||||
| 1258| unicode.org |Windows Vietnam
|
||||
| 1361|MakeEncoding.cs|Korean (Johab)
|
||||
|10000| unicode.org |MAC Roman
|
||||
|10001|MakeEncoding.cs|Japanese (Mac)
|
||||
|10002|MakeEncoding.cs|MAC Traditional Chinese (Big5)
|
||||
|10003|MakeEncoding.cs|Korean (Mac)
|
||||
|10004|MakeEncoding.cs|Arabic (Mac)
|
||||
|10005|MakeEncoding.cs|Hebrew (Mac)
|
||||
|10006| unicode.org |Greek (Mac)
|
||||
|10007| unicode.org |Cyrillic (Mac)
|
||||
|10008|MakeEncoding.cs|MAC Simplified Chinese (GB 2312)
|
||||
|10010|MakeEncoding.cs|Romanian (Mac)
|
||||
|10017|MakeEncoding.cs|Ukrainian (Mac)
|
||||
|10021|MakeEncoding.cs|Thai (Mac)
|
||||
|10029| unicode.org |MAC Latin 2 (Central European)
|
||||
|10079| unicode.org |Icelandic (Mac)
|
||||
|10081| unicode.org |Turkish (Mac)
|
||||
|10082|MakeEncoding.cs|Croatian (Mac)
|
||||
|12000| magic |Unicode UTF-32, little endian byte order
|
||||
|12001| magic |Unicode UTF-32, big endian byte order
|
||||
|20000|MakeEncoding.cs|CNS Taiwan (Chinese Traditional)
|
||||
|20001|MakeEncoding.cs|TCA Taiwan
|
||||
|20002|MakeEncoding.cs|Eten Taiwan (Chinese Traditional)
|
||||
|20003|MakeEncoding.cs|IBM5550 Taiwan
|
||||
|20004|MakeEncoding.cs|TeleText Taiwan
|
||||
|20005|MakeEncoding.cs|Wang Taiwan
|
||||
|20105|MakeEncoding.cs|Western European IA5 (IRV International Alphabet 5) 7-bit
|
||||
|20106|MakeEncoding.cs|IA5 German (7-bit)
|
||||
|20107|MakeEncoding.cs|IA5 Swedish (7-bit)
|
||||
|20108|MakeEncoding.cs|IA5 Norwegian (7-bit)
|
||||
|20127| magic |US-ASCII (7-bit)
|
||||
|20261|MakeEncoding.cs|T.61
|
||||
|20269|MakeEncoding.cs|ISO 6937 Non-Spacing Accent
|
||||
|20273|MakeEncoding.cs|IBM EBCDIC Germany
|
||||
|20277|MakeEncoding.cs|IBM EBCDIC Denmark-Norway
|
||||
|20278|MakeEncoding.cs|IBM EBCDIC Finland-Sweden
|
||||
|20280|MakeEncoding.cs|IBM EBCDIC Italy
|
||||
|20284|MakeEncoding.cs|IBM EBCDIC Latin America-Spain
|
||||
|20285|MakeEncoding.cs|IBM EBCDIC United Kingdom
|
||||
|20290|MakeEncoding.cs|IBM EBCDIC Japanese Katakana Extended
|
||||
|20297|MakeEncoding.cs|IBM EBCDIC France
|
||||
|20420|MakeEncoding.cs|IBM EBCDIC Arabic
|
||||
|20423|MakeEncoding.cs|IBM EBCDIC Greek
|
||||
|20424|MakeEncoding.cs|IBM EBCDIC Hebrew
|
||||
|20833|MakeEncoding.cs|IBM EBCDIC Korean Extended
|
||||
|20838|MakeEncoding.cs|IBM EBCDIC Thai
|
||||
|20866|MakeEncoding.cs|Russian Cyrillic (KOI8-R)
|
||||
|20871|MakeEncoding.cs|IBM EBCDIC Icelandic
|
||||
|20880|MakeEncoding.cs|IBM EBCDIC Cyrillic Russian
|
||||
|20905|MakeEncoding.cs|IBM EBCDIC Turkish
|
||||
|20924|MakeEncoding.cs|IBM EBCDIC Latin 1/Open System (1047 + Euro symbol)
|
||||
|20932|MakeEncoding.cs|Japanese (JIS 0208-1990 and 0212-1990)
|
||||
|20936|MakeEncoding.cs|Simplified Chinese (GB2312-80)
|
||||
|20949|MakeEncoding.cs|Korean Wansung
|
||||
|21025|MakeEncoding.cs|IBM EBCDIC Cyrillic Serbian-Bulgarian
|
||||
|21027| NLS |Extended/Ext Alpha Lowercase
|
||||
|21866|MakeEncoding.cs|Ukrainian Cyrillic (KOI8-U)
|
||||
|28591| unicode.org |ISO 8859-1 Latin 1 (Western European)
|
||||
|28592| unicode.org |ISO 8859-2 Latin 2 (Central European)
|
||||
|28593| unicode.org |ISO 8859-3 Latin 3
|
||||
|28594| unicode.org |ISO 8859-4 Baltic
|
||||
|28595| unicode.org |ISO 8859-5 Cyrillic
|
||||
|28596| unicode.org |ISO 8859-6 Arabic
|
||||
|28597| unicode.org |ISO 8859-7 Greek
|
||||
|28598| unicode.org |ISO 8859-8 Hebrew (ISO-Visual)
|
||||
|28599| unicode.org |ISO 8859-9 Turkish
|
||||
|28600| unicode.org |ISO 8859-10 Latin 6
|
||||
|28601| unicode.org |ISO 8859-11 Latin (Thai)
|
||||
|28603| unicode.org |ISO 8859-13 Latin 7 (Estonian)
|
||||
|28604| unicode.org |ISO 8859-14 Latin 8 (Celtic)
|
||||
|28605| unicode.org |ISO 8859-15 Latin 9
|
||||
|28606| unicode.org |ISO 8859-15 Latin 10
|
||||
|29001|MakeEncoding.cs|Europa 3
|
||||
|38598|MakeEncoding.cs|ISO 8859-8 Hebrew (ISO-Logical)
|
||||
|50220|MakeEncoding.cs|ISO 2022 JIS Japanese with no halfwidth Katakana
|
||||
|50221|MakeEncoding.cs|ISO 2022 JIS Japanese with halfwidth Katakana
|
||||
|50222|MakeEncoding.cs|ISO 2022 Japanese JIS X 0201-1989 (1 byte Kana-SO/SI)
|
||||
|50225|MakeEncoding.cs|ISO 2022 Korean
|
||||
|50227|MakeEncoding.cs|ISO 2022 Simplified Chinese
|
||||
|51932|MakeEncoding.cs|EUC Japanese
|
||||
|51936|MakeEncoding.cs|EUC Simplified Chinese
|
||||
|51949|MakeEncoding.cs|EUC Korean
|
||||
|52936|MakeEncoding.cs|HZ-GB2312 Simplified Chinese
|
||||
|54936|MakeEncoding.cs|GB18030 Simplified Chinese (4 byte)
|
||||
|57002|MakeEncoding.cs|ISCII Devanagari
|
||||
|57003|MakeEncoding.cs|ISCII Bengali
|
||||
|57004|MakeEncoding.cs|ISCII Tamil
|
||||
|57005|MakeEncoding.cs|ISCII Telugu
|
||||
|57006|MakeEncoding.cs|ISCII Assamese
|
||||
|57007|MakeEncoding.cs|ISCII Oriya
|
||||
|57008|MakeEncoding.cs|ISCII Kannada
|
||||
|57009|MakeEncoding.cs|ISCII Malayalam
|
||||
|57010|MakeEncoding.cs|ISCII Gujarati
|
||||
|57011|MakeEncoding.cs|ISCII Punjabi
|
||||
|65000| magic |Unicode (UTF-7)
|
||||
|65001| magic |Unicode (UTF-8)
|
||||
| CP# | Source | Description |
|
||||
|--------:|:-----------:|:-----------------------------------------------------|
|
||||
| ` 37` | unicode.org | IBM EBCDIC US-Canada |
|
||||
| ` 437` | unicode.org | OEM United States |
|
||||
| ` 500` | unicode.org | IBM EBCDIC International |
|
||||
| ` 620` | NLS | Mazovia (Polish) MS-DOS |
|
||||
| ` 708` | Windows 7 | Arabic (ASMO 708) |
|
||||
| ` 720` | Windows 7 | Arabic (Transparent ASMO); Arabic (DOS) |
|
||||
| ` 737` | unicode.org | OEM Greek (formerly 437G); Greek (DOS) |
|
||||
| ` 775` | unicode.org | OEM Baltic; Baltic (DOS) |
|
||||
| ` 808` | unicode.org | OEM Russian; Cyrillic + Euro symbol |
|
||||
| ` 850` | unicode.org | OEM Multilingual Latin 1; Western European (DOS) |
|
||||
| ` 852` | unicode.org | OEM Latin 2; Central European (DOS) |
|
||||
| ` 855` | unicode.org | OEM Cyrillic (primarily Russian) |
|
||||
| ` 857` | unicode.org | OEM Turkish; Turkish (DOS) |
|
||||
| ` 858` | Windows 7 | OEM Multilingual Latin 1 + Euro symbol |
|
||||
| ` 860` | unicode.org | OEM Portuguese; Portuguese (DOS) |
|
||||
| ` 861` | unicode.org | OEM Icelandic; Icelandic (DOS) |
|
||||
| ` 862` | unicode.org | OEM Hebrew; Hebrew (DOS) |
|
||||
| ` 863` | unicode.org | OEM French Canadian; French Canadian (DOS) |
|
||||
| ` 864` | unicode.org | OEM Arabic; Arabic (864) |
|
||||
| ` 865` | unicode.org | OEM Nordic; Nordic (DOS) |
|
||||
| ` 866` | unicode.org | OEM Russian; Cyrillic (DOS) |
|
||||
| ` 869` | unicode.org | OEM Modern Greek; Greek, Modern (DOS) |
|
||||
| ` 870` | Windows 7 | IBM EBCDIC Multilingual/ROECE (Latin 2) |
|
||||
| ` 872` | unicode.org | OEM Cyrillic (primarily Russian) + Euro Symbol |
|
||||
| ` 874` | unicode.org | Windows Thai |
|
||||
| ` 875` | unicode.org | IBM EBCDIC Greek Modern |
|
||||
| ` 895` | NLS | Kamenick (Czech) MS-DOS |
|
||||
| ` 932` | unicode.org | Japanese Shift-JIS |
|
||||
| ` 936` | unicode.org | Simplified Chinese GBK |
|
||||
| ` 949` | unicode.org | Korean |
|
||||
| ` 950` | unicode.org | Traditional Chinese Big5 |
|
||||
| ` 1010` | IBM | IBM EBCDIC French |
|
||||
| ` 1026` | unicode.org | IBM EBCDIC Turkish (Latin 5) |
|
||||
| ` 1047` | Windows 7 | IBM EBCDIC Latin 1/Open System |
|
||||
| ` 1132` | IBM | IBM EBCDIC Lao (1132 / 1133 / 1341) |
|
||||
| ` 1140` | Windows 7 | IBM EBCDIC US-Canada (037 + Euro symbol) |
|
||||
| ` 1141` | Windows 7 | IBM EBCDIC Germany (20273 + Euro symbol) |
|
||||
| ` 1142` | Windows 7 | IBM EBCDIC Denmark-Norway (20277 + Euro symbol) |
|
||||
| ` 1143` | Windows 7 | IBM EBCDIC Finland-Sweden (20278 + Euro symbol) |
|
||||
| ` 1144` | Windows 7 | IBM EBCDIC Italy (20280 + Euro symbol) |
|
||||
| ` 1145` | Windows 7 | IBM EBCDIC Latin America-Spain (20284 + Euro symbol) |
|
||||
| ` 1146` | Windows 7 | IBM EBCDIC United Kingdom (20285 + Euro symbol) |
|
||||
| ` 1147` | Windows 7 | IBM EBCDIC France (20297 + Euro symbol) |
|
||||
| ` 1148` | Windows 7 | IBM EBCDIC International (500 + Euro symbol) |
|
||||
| ` 1149` | Windows 7 | IBM EBCDIC Icelandic (20871 + Euro symbol) |
|
||||
| ` 1200` | magic | Unicode UTF-16, little endian (BMP of ISO 10646) |
|
||||
| ` 1201` | magic | Unicode UTF-16, big endian |
|
||||
| ` 1250` | unicode.org | Windows Central Europe |
|
||||
| ` 1251` | unicode.org | Windows Cyrillic |
|
||||
| ` 1252` | unicode.org | Windows Latin I |
|
||||
| ` 1253` | unicode.org | Windows Greek |
|
||||
| ` 1254` | unicode.org | Windows Turkish |
|
||||
| ` 1255` | unicode.org | Windows Hebrew |
|
||||
| ` 1256` | unicode.org | Windows Arabic |
|
||||
| ` 1257` | unicode.org | Windows Baltic |
|
||||
| ` 1258` | unicode.org | Windows Vietnam |
|
||||
| ` 1361` | Windows 7 | Korean (Johab) |
|
||||
| `10000` | unicode.org | MAC Roman |
|
||||
| `10001` | Windows 7 | Japanese (Mac) |
|
||||
| `10002` | Windows 7 | MAC Traditional Chinese (Big5) |
|
||||
| `10003` | Windows 7 | Korean (Mac) |
|
||||
| `10004` | Windows 7 | Arabic (Mac) |
|
||||
| `10005` | Windows 7 | Hebrew (Mac) |
|
||||
| `10006` | unicode.org | Greek (Mac) |
|
||||
| `10007` | unicode.org | Cyrillic (Mac) |
|
||||
| `10008` | Windows 7 | MAC Simplified Chinese (GB 2312) |
|
||||
| `10010` | Windows 7 | Romanian (Mac) |
|
||||
| `10017` | Windows 7 | Ukrainian (Mac) |
|
||||
| `10021` | Windows 7 | Thai (Mac) |
|
||||
| `10029` | unicode.org | MAC Latin 2 (Central European) |
|
||||
| `10079` | unicode.org | Icelandic (Mac) |
|
||||
| `10081` | unicode.org | Turkish (Mac) |
|
||||
| `10082` | Windows 7 | Croatian (Mac) |
|
||||
| `12000` | magic | Unicode UTF-32, little endian byte order |
|
||||
| `12001` | magic | Unicode UTF-32, big endian byte order |
|
||||
| `20000` | Windows 7 | CNS Taiwan (Chinese Traditional) |
|
||||
| `20001` | Windows 7 | TCA Taiwan |
|
||||
| `20002` | Windows 7 | Eten Taiwan (Chinese Traditional) |
|
||||
| `20003` | Windows 7 | IBM5550 Taiwan |
|
||||
| `20004` | Windows 7 | TeleText Taiwan |
|
||||
| `20005` | Windows 7 | Wang Taiwan |
|
||||
| `20105` | Windows 7 | Western European IA5 (IRV International Alphabet 5) |
|
||||
| `20106` | Windows 7 | IA5 German (7-bit) |
|
||||
| `20107` | Windows 7 | IA5 Swedish (7-bit) |
|
||||
| `20108` | Windows 7 | IA5 Norwegian (7-bit) |
|
||||
| `20127` | magic | US-ASCII (7-bit) |
|
||||
| `20261` | Windows 7 | T.61 |
|
||||
| `20269` | Windows 7 | ISO 6937 Non-Spacing Accent |
|
||||
| `20273` | Windows 7 | IBM EBCDIC Germany |
|
||||
| `20277` | Windows 7 | IBM EBCDIC Denmark-Norway |
|
||||
| `20278` | Windows 7 | IBM EBCDIC Finland-Sweden |
|
||||
| `20280` | Windows 7 | IBM EBCDIC Italy |
|
||||
| `20284` | Windows 7 | IBM EBCDIC Latin America-Spain |
|
||||
| `20285` | Windows 7 | IBM EBCDIC United Kingdom |
|
||||
| `20290` | Windows 7 | IBM EBCDIC Japanese Katakana Extended |
|
||||
| `20297` | Windows 7 | IBM EBCDIC France |
|
||||
| `20420` | Windows 7 | IBM EBCDIC Arabic |
|
||||
| `20423` | Windows 7 | IBM EBCDIC Greek |
|
||||
| `20424` | Windows 7 | IBM EBCDIC Hebrew |
|
||||
| `20833` | Windows 7 | IBM EBCDIC Korean Extended |
|
||||
| `20838` | Windows 7 | IBM EBCDIC Thai |
|
||||
| `20866` | Windows 7 | Russian Cyrillic (KOI8-R) |
|
||||
| `20871` | Windows 7 | IBM EBCDIC Icelandic |
|
||||
| `20880` | Windows 7 | IBM EBCDIC Cyrillic Russian |
|
||||
| `20905` | Windows 7 | IBM EBCDIC Turkish |
|
||||
| `20924` | Windows 7 | IBM EBCDIC Latin 1/Open System (1047 + Euro symbol) |
|
||||
| `20932` | Windows 7 | Japanese (JIS 0208-1990 and 0212-1990) |
|
||||
| `20936` | Windows 7 | Simplified Chinese (GB2312-80) |
|
||||
| `20949` | Windows 7 | Korean Wansung |
|
||||
| `21025` | Windows 7 | IBM EBCDIC Cyrillic Serbian-Bulgarian |
|
||||
| `21027` | NLS | Extended/Ext Alpha Lowercase |
|
||||
| `21866` | Windows 7 | Ukrainian Cyrillic (KOI8-U) |
|
||||
| `28591` | unicode.org | ISO 8859-1 Latin 1 (Western European) |
|
||||
| `28592` | unicode.org | ISO 8859-2 Latin 2 (Central European) |
|
||||
| `28593` | unicode.org | ISO 8859-3 Latin 3 |
|
||||
| `28594` | unicode.org | ISO 8859-4 Baltic |
|
||||
| `28595` | unicode.org | ISO 8859-5 Cyrillic |
|
||||
| `28596` | unicode.org | ISO 8859-6 Arabic |
|
||||
| `28597` | unicode.org | ISO 8859-7 Greek |
|
||||
| `28598` | unicode.org | ISO 8859-8 Hebrew (ISO-Visual) |
|
||||
| `28599` | unicode.org | ISO 8859-9 Turkish |
|
||||
| `28600` | unicode.org | ISO 8859-10 Latin 6 |
|
||||
| `28601` | unicode.org | ISO 8859-11 Latin (Thai) |
|
||||
| `28603` | unicode.org | ISO 8859-13 Latin 7 (Estonian) |
|
||||
| `28604` | unicode.org | ISO 8859-14 Latin 8 (Celtic) |
|
||||
| `28605` | unicode.org | ISO 8859-15 Latin 9 |
|
||||
| `28606` | unicode.org | ISO 8859-15 Latin 10 |
|
||||
| `29001` | Windows 7 | Europa 3 |
|
||||
| `38598` | Windows 7 | ISO 8859-8 Hebrew (ISO-Logical) |
|
||||
| `47451` | unicode.org | Atari ST/TT |
|
||||
| `50220` | Windows 7 | ISO 2022 JIS Japanese with no halfwidth Katakana |
|
||||
| `50221` | Windows 7 | ISO 2022 JIS Japanese with halfwidth Katakana |
|
||||
| `50222` | Windows 7 | ISO 2022 Japanese JIS X 0201-1989 (1 byte Kana-SO/SI)|
|
||||
| `50225` | Windows 7 | ISO 2022 Korean |
|
||||
| `50227` | Windows 7 | ISO 2022 Simplified Chinese |
|
||||
| `51932` | Windows 7 | EUC Japanese |
|
||||
| `51936` | Windows 7 | EUC Simplified Chinese |
|
||||
| `51949` | Windows 7 | EUC Korean |
|
||||
| `52936` | Windows 7 | HZ-GB2312 Simplified Chinese |
|
||||
| `54936` | Windows 7 | GB18030 Simplified Chinese (4 byte) |
|
||||
| `57002` | Windows 7 | ISCII Devanagari |
|
||||
| `57003` | Windows 7 | ISCII Bengali |
|
||||
| `57004` | Windows 7 | ISCII Tamil |
|
||||
| `57005` | Windows 7 | ISCII Telugu |
|
||||
| `57006` | Windows 7 | ISCII Assamese |
|
||||
| `57007` | Windows 7 | ISCII Oriya |
|
||||
| `57008` | Windows 7 | ISCII Kannada |
|
||||
| `57009` | Windows 7 | ISCII Malayalam |
|
||||
| `57010` | Windows 7 | ISCII Gujarati |
|
||||
| `57011` | Windows 7 | ISCII Punjabi |
|
||||
| `65000` | magic | Unicode (UTF-7) |
|
||||
| `65001` | magic | Unicode (UTF-8) |
|
||||
|
||||
Note that MakeEncoding.cs deviates from unicode.org for some codepages. In the
|
||||
case of direct conflicts, unicode.org takes precedence. In cases where the
|
||||
unicode.org listing does not prescribe a value, MakeEncoding.cs value is used.
|
||||
`unicode.org` refers to the Unicode Consortium Public Mappings, a database of
|
||||
various mappings between unicode characters and respective character sets. The
|
||||
tables are processed by a few scripts in the build process.
|
||||
|
||||
NLS refers to the National Language Support files supplied in various versions of
|
||||
Windows. In older versions of Windows (e.g. Windows 98) these files followed the
|
||||
pattern `CP_#.NLS`, but newer versions use the pattern `C_#.NLS`.
|
||||
`IBM` refers to the IBM coded character set database. Even though IBM uses a
|
||||
different numbering scheme from Windows, the IBM numbers are used when there is
|
||||
no conflict. The tables are manually generated from the symbol PDFs.
|
||||
|
||||
`Windows 7` refers to direct inspection of Windows 7 machines using .NET class
|
||||
`System.Text.Encoding`. The enclosed `MakeEncoding.cs` C# program brute-forces
|
||||
code pages. MakeEncoding.cs deviates from unicode.org in some cases. When they
|
||||
map a given code to different characters, unicode.org value is used. When
|
||||
unicode.org does not prescribe a value, MakeEncoding.cs value is used.
|
||||
|
||||
`NLS` refers to the National Language Support files supplied in various versions
|
||||
of Windows. In older versions of Windows (e.g. Windows 98) these files followed
|
||||
the name pattern `CP_#.NLS`, but newer versions use the name pattern `C_#.NLS`.
|
||||
|
||||
## Sources
|
||||
|
||||
- [Unicode Consortium Public Mappings](http://www.unicode.org/Public/MAPPINGS/)
|
||||
- [Code Page Enumeration](http://msdn.microsoft.com/en-us/library/cc195051.aspx)
|
||||
- [Code Page Identifiers](http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756.aspx)
|
||||
- [Windows Code Page Enumeration](http://msdn.microsoft.com/en-us/library/cc195051.aspx)
|
||||
- [Windows Code Page Identifiers](http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756.aspx)
|
||||
- [IBM Coded Character Sets](https://www-01.ibm.com/software/globalization/ccsid/ccsid_registered.html)
|
||||
|
||||
## Badges
|
||||
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -47,27 +47,33 @@ appropriate codepage scripts were loaded.
|
||||
|
||||
+ACMAIw Usage
|
||||
|
||||
The codepages are indexed by number. To get the unicode character for a given
|
||||
Most codepages are indexed by number. To get the unicode character for a given
|
||||
codepoint, use the +AGA-dec+AGA property:
|
||||
|
||||
var unicode+AF8-cp10000+AF8-255 +AD0 cptable+AFs-10000+AF0.dec+AFs-255+AF0AOw // +Asc
|
||||
+AGAAYABg-js
|
||||
var unicode+AF8-cp10000+AF8-255 +AD0 cptable+AFs-10000+AF0.dec+AFs-255+AF0AOw // +Asc
|
||||
+AGAAYABg
|
||||
|
||||
To get the codepoint for a given character, use the +AGA-enc+AGA property:
|
||||
|
||||
var cp10000+AF8-711 +AD0 cptable+AFs-10000+AF0.enc+AFs-String.fromCharCode(711)+AF0AOw // 255
|
||||
+AGAAYABg-js
|
||||
var cp10000+AF8-711 +AD0 cptable+AFs-10000+AF0.enc+AFs-String.fromCharCode(711)+AF0AOw // 255
|
||||
+AGAAYABg
|
||||
|
||||
There are a few utilities that deal with strings and buffers:
|
||||
|
||||
var +bEdgOw +AD0 cptable.utils.decode(936, +AFs-0xbb,0xe3,0xd7,0xdc+AF0)+ADs
|
||||
var buf +AD0 cptable.utils.encode(936, +bEdgOw)+ADs
|
||||
var sushi+AD0 cptable.utils.decode(65001, +AFs-0xf0,0x9f,0x8d,0xa3+AF0)+ADs // +2DzfYw
|
||||
var sbuf +AD0 cptable.utils.encode(65001, sushi)+ADs
|
||||
+AGAAYABg-js
|
||||
var +bEdgOw +AD0 cptable.utils.decode(936, +AFs-0xbb,0xe3,0xd7,0xdc+AF0)+ADs
|
||||
var buf +AD0 cptable.utils.encode(936, +bEdgOw)+ADs
|
||||
var sushi+AD0 cptable.utils.decode(65001, +AFs-0xf0,0x9f,0x8d,0xa3+AF0)+ADs // +2DzfYw
|
||||
var sbuf +AD0 cptable.utils.encode(65001, sushi)+ADs
|
||||
+AGAAYABg
|
||||
|
||||
+AGA-cptable.utils.encode(CP, data, ofmt)+AGA accepts a String or Array of characters
|
||||
and returns a representation controlled by +AGA-ofmt+AGA:
|
||||
|
||||
- Default output is a Buffer (or Array) of bytes (integers between 0 and 255).
|
||||
- If +AGA-ofmt +AD0APQ 'str'+AGA, return a String where +AGA-o.charCodeAt(i)+AGA is the ith byte
|
||||
- If +AGA-ofmt +AD0APQ 'str'+AGA, return a String where +AGA-o.charCodeAt(i)+AGA is the +AGA-i+AGA--th byte
|
||||
- If +AGA-ofmt +AD0APQ 'arr'+AGA, return an Array of bytes
|
||||
|
||||
+ACMAIw Known Excel Codepages
|
||||
@ -79,7 +85,9 @@ needed.
|
||||
|
||||
In node:
|
||||
|
||||
var cptable +AD0 require('codepage/dist/cpexcel.full')+ADs
|
||||
+AGAAYABg-js
|
||||
var cptable +AD0 require('codepage/dist/cpexcel.full')+ADs
|
||||
+AGAAYABg
|
||||
|
||||
+ACMAIw Rolling your own script
|
||||
|
||||
@ -87,7 +95,9 @@ The +AGA-make.sh+AGA script in the repo can take a manifest and generate JS sour
|
||||
|
||||
Usage:
|
||||
|
||||
bash make.sh path+AF8-to+AF8-manifest output+AF8-file+AF8-name JSVAR
|
||||
+AGAAYABg-bash
|
||||
bash make.sh path+AF8-to+AF8-manifest output+AF8-file+AF8-name JSVAR
|
||||
+AGAAYABg
|
||||
|
||||
where
|
||||
|
||||
@ -119,171 +129,187 @@ the JS source is +AGA-codepage.md+AGA, so building is as simple as +AGA-voc code
|
||||
The complete list of hardcoded codepages can be found in the file +AGA-pages.csv+AGA.
|
||||
|
||||
Some codepages are easier to implement algorithmically. Since these are
|
||||
hardcoded in utils, there is no corresponding entry (they are +ACI-magic+ACI)
|
||||
hardcoded in +AGA-utils+AGA, there is no corresponding entry (they are +ACI-magic+ACI).
|
||||
|
||||
+AHw CP+ACM +AHw Information +AHw Description +AHw
|
||||
+AHw --: +AHw :----------: +AHw :---------- +AHw
|
||||
+AHw 37+AHw unicode.org +AHw-IBM EBCDIC US-Canada
|
||||
+AHw 437+AHw unicode.org +AHw-OEM United States
|
||||
+AHw 500+AHw unicode.org +AHw-IBM EBCDIC International
|
||||
+AHw 620+AHw NLS +AHw-Mazovia (Polish) MS-DOS
|
||||
+AHw 708+AHw-MakeEncoding.cs+AHw-Arabic (ASMO 708)
|
||||
+AHw 720+AHw-MakeEncoding.cs+AHw-Arabic (Transparent ASMO)+ADs Arabic (DOS)
|
||||
+AHw 737+AHw unicode.org +AHw-OEM Greek (formerly 437G)+ADs Greek (DOS)
|
||||
+AHw 775+AHw unicode.org +AHw-OEM Baltic+ADs Baltic (DOS)
|
||||
+AHw 850+AHw unicode.org +AHw-OEM Multilingual Latin 1+ADs Western European (DOS)
|
||||
+AHw 852+AHw unicode.org +AHw-OEM Latin 2+ADs Central European (DOS)
|
||||
+AHw 855+AHw unicode.org +AHw-OEM Cyrillic (primarily Russian)
|
||||
+AHw 857+AHw unicode.org +AHw-OEM Turkish+ADs Turkish (DOS)
|
||||
+AHw 858+AHw-MakeEncoding.cs+AHw-OEM Multilingual Latin 1 +- Euro symbol
|
||||
+AHw 860+AHw unicode.org +AHw-OEM Portuguese+ADs Portuguese (DOS)
|
||||
+AHw 861+AHw unicode.org +AHw-OEM Icelandic+ADs Icelandic (DOS)
|
||||
+AHw 862+AHw unicode.org +AHw-OEM Hebrew+ADs Hebrew (DOS)
|
||||
+AHw 863+AHw unicode.org +AHw-OEM French Canadian+ADs French Canadian (DOS)
|
||||
+AHw 864+AHw unicode.org +AHw-OEM Arabic+ADs Arabic (864)
|
||||
+AHw 865+AHw unicode.org +AHw-OEM Nordic+ADs Nordic (DOS)
|
||||
+AHw 866+AHw unicode.org +AHw-OEM Russian+ADs Cyrillic (DOS)
|
||||
+AHw 869+AHw unicode.org +AHw-OEM Modern Greek+ADs Greek, Modern (DOS)
|
||||
+AHw 870+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Multilingual/ROECE (Latin 2)
|
||||
+AHw 874+AHw unicode.org +AHw-Windows Thai
|
||||
+AHw 875+AHw unicode.org +AHw-IBM EBCDIC Greek Modern
|
||||
+AHw 895+AHw NLS +AHw-Kamenick+AP0 (Czech) MS-DOS
|
||||
+AHw 932+AHw unicode.org +AHw-Japanese Shift-JIS
|
||||
+AHw 936+AHw unicode.org +AHw-Simplified Chinese GBK
|
||||
+AHw 949+AHw unicode.org +AHw-Korean
|
||||
+AHw 950+AHw unicode.org +AHw-Traditional Chinese Big5
|
||||
+AHw 1026+AHw unicode.org +AHw-IBM EBCDIC Turkish (Latin 5)
|
||||
+AHw 1047+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Latin 1/Open System
|
||||
+AHw 1140+AHw-MakeEncoding.cs+AHw-IBM EBCDIC US-Canada (037 +- Euro symbol)
|
||||
+AHw 1141+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Germany (20273 +- Euro symbol)
|
||||
+AHw 1142+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Denmark-Norway (20277 +- Euro symbol)
|
||||
+AHw 1143+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Finland-Sweden (20278 +- Euro symbol)
|
||||
+AHw 1144+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Italy (20280 +- Euro symbol)
|
||||
+AHw 1145+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Latin America-Spain (20284 +- Euro symbol)
|
||||
+AHw 1146+AHw-MakeEncoding.cs+AHw-IBM EBCDIC United Kingdom (20285 +- Euro symbol)
|
||||
+AHw 1147+AHw-MakeEncoding.cs+AHw-IBM EBCDIC France (20297 +- Euro symbol)
|
||||
+AHw 1148+AHw-MakeEncoding.cs+AHw-IBM EBCDIC International (500 +- Euro symbol)
|
||||
+AHw 1149+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Icelandic (20871 +- Euro symbol)
|
||||
+AHw 1200+AHw magic +AHw-Unicode UTF-16, little endian (BMP of ISO 10646)
|
||||
+AHw 1201+AHw magic +AHw-Unicode UTF-16, big endian
|
||||
+AHw 1250+AHw unicode.org +AHw-Windows Central Europe
|
||||
+AHw 1251+AHw unicode.org +AHw-Windows Cyrillic
|
||||
+AHw 1252+AHw unicode.org +AHw-Windows Latin I
|
||||
+AHw 1253+AHw unicode.org +AHw-Windows Greek
|
||||
+AHw 1254+AHw unicode.org +AHw-Windows Turkish
|
||||
+AHw 1255+AHw unicode.org +AHw-Windows Hebrew
|
||||
+AHw 1256+AHw unicode.org +AHw-Windows Arabic
|
||||
+AHw 1257+AHw unicode.org +AHw-Windows Baltic
|
||||
+AHw 1258+AHw unicode.org +AHw-Windows Vietnam
|
||||
+AHw 1361+AHw-MakeEncoding.cs+AHw-Korean (Johab)
|
||||
+AHw-10000+AHw unicode.org +AHw-MAC Roman
|
||||
+AHw-10001+AHw-MakeEncoding.cs+AHw-Japanese (Mac)
|
||||
+AHw-10002+AHw-MakeEncoding.cs+AHw-MAC Traditional Chinese (Big5)
|
||||
+AHw-10003+AHw-MakeEncoding.cs+AHw-Korean (Mac)
|
||||
+AHw-10004+AHw-MakeEncoding.cs+AHw-Arabic (Mac)
|
||||
+AHw-10005+AHw-MakeEncoding.cs+AHw-Hebrew (Mac)
|
||||
+AHw-10006+AHw unicode.org +AHw-Greek (Mac)
|
||||
+AHw-10007+AHw unicode.org +AHw-Cyrillic (Mac)
|
||||
+AHw-10008+AHw-MakeEncoding.cs+AHw-MAC Simplified Chinese (GB 2312)
|
||||
+AHw-10010+AHw-MakeEncoding.cs+AHw-Romanian (Mac)
|
||||
+AHw-10017+AHw-MakeEncoding.cs+AHw-Ukrainian (Mac)
|
||||
+AHw-10021+AHw-MakeEncoding.cs+AHw-Thai (Mac)
|
||||
+AHw-10029+AHw unicode.org +AHw-MAC Latin 2 (Central European)
|
||||
+AHw-10079+AHw unicode.org +AHw-Icelandic (Mac)
|
||||
+AHw-10081+AHw unicode.org +AHw-Turkish (Mac)
|
||||
+AHw-10082+AHw-MakeEncoding.cs+AHw-Croatian (Mac)
|
||||
+AHw-12000+AHw magic +AHw-Unicode UTF-32, little endian byte order
|
||||
+AHw-12001+AHw magic +AHw-Unicode UTF-32, big endian byte order
|
||||
+AHw-20000+AHw-MakeEncoding.cs+AHw-CNS Taiwan (Chinese Traditional)
|
||||
+AHw-20001+AHw-MakeEncoding.cs+AHw-TCA Taiwan
|
||||
+AHw-20002+AHw-MakeEncoding.cs+AHw-Eten Taiwan (Chinese Traditional)
|
||||
+AHw-20003+AHw-MakeEncoding.cs+AHw-IBM5550 Taiwan
|
||||
+AHw-20004+AHw-MakeEncoding.cs+AHw-TeleText Taiwan
|
||||
+AHw-20005+AHw-MakeEncoding.cs+AHw-Wang Taiwan
|
||||
+AHw-20105+AHw-MakeEncoding.cs+AHw-Western European IA5 (IRV International Alphabet 5) 7-bit
|
||||
+AHw-20106+AHw-MakeEncoding.cs+AHw-IA5 German (7-bit)
|
||||
+AHw-20107+AHw-MakeEncoding.cs+AHw-IA5 Swedish (7-bit)
|
||||
+AHw-20108+AHw-MakeEncoding.cs+AHw-IA5 Norwegian (7-bit)
|
||||
+AHw-20127+AHw magic +AHw-US-ASCII (7-bit)
|
||||
+AHw-20261+AHw-MakeEncoding.cs+AHw-T.61
|
||||
+AHw-20269+AHw-MakeEncoding.cs+AHw-ISO 6937 Non-Spacing Accent
|
||||
+AHw-20273+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Germany
|
||||
+AHw-20277+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Denmark-Norway
|
||||
+AHw-20278+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Finland-Sweden
|
||||
+AHw-20280+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Italy
|
||||
+AHw-20284+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Latin America-Spain
|
||||
+AHw-20285+AHw-MakeEncoding.cs+AHw-IBM EBCDIC United Kingdom
|
||||
+AHw-20290+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Japanese Katakana Extended
|
||||
+AHw-20297+AHw-MakeEncoding.cs+AHw-IBM EBCDIC France
|
||||
+AHw-20420+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Arabic
|
||||
+AHw-20423+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Greek
|
||||
+AHw-20424+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Hebrew
|
||||
+AHw-20833+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Korean Extended
|
||||
+AHw-20838+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Thai
|
||||
+AHw-20866+AHw-MakeEncoding.cs+AHw-Russian Cyrillic (KOI8-R)
|
||||
+AHw-20871+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Icelandic
|
||||
+AHw-20880+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Cyrillic Russian
|
||||
+AHw-20905+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Turkish
|
||||
+AHw-20924+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Latin 1/Open System (1047 +- Euro symbol)
|
||||
+AHw-20932+AHw-MakeEncoding.cs+AHw-Japanese (JIS 0208-1990 and 0212-1990)
|
||||
+AHw-20936+AHw-MakeEncoding.cs+AHw-Simplified Chinese (GB2312-80)
|
||||
+AHw-20949+AHw-MakeEncoding.cs+AHw-Korean Wansung
|
||||
+AHw-21025+AHw-MakeEncoding.cs+AHw-IBM EBCDIC Cyrillic Serbian-Bulgarian
|
||||
+AHw-21027+AHw NLS +AHw-Extended/Ext Alpha Lowercase
|
||||
+AHw-21866+AHw-MakeEncoding.cs+AHw-Ukrainian Cyrillic (KOI8-U)
|
||||
+AHw-28591+AHw unicode.org +AHw-ISO 8859-1 Latin 1 (Western European)
|
||||
+AHw-28592+AHw unicode.org +AHw-ISO 8859-2 Latin 2 (Central European)
|
||||
+AHw-28593+AHw unicode.org +AHw-ISO 8859-3 Latin 3
|
||||
+AHw-28594+AHw unicode.org +AHw-ISO 8859-4 Baltic
|
||||
+AHw-28595+AHw unicode.org +AHw-ISO 8859-5 Cyrillic
|
||||
+AHw-28596+AHw unicode.org +AHw-ISO 8859-6 Arabic
|
||||
+AHw-28597+AHw unicode.org +AHw-ISO 8859-7 Greek
|
||||
+AHw-28598+AHw unicode.org +AHw-ISO 8859-8 Hebrew (ISO-Visual)
|
||||
+AHw-28599+AHw unicode.org +AHw-ISO 8859-9 Turkish
|
||||
+AHw-28600+AHw unicode.org +AHw-ISO 8859-10 Latin 6
|
||||
+AHw-28601+AHw unicode.org +AHw-ISO 8859-11 Latin (Thai)
|
||||
+AHw-28603+AHw unicode.org +AHw-ISO 8859-13 Latin 7 (Estonian)
|
||||
+AHw-28604+AHw unicode.org +AHw-ISO 8859-14 Latin 8 (Celtic)
|
||||
+AHw-28605+AHw unicode.org +AHw-ISO 8859-15 Latin 9
|
||||
+AHw-28606+AHw unicode.org +AHw-ISO 8859-15 Latin 10
|
||||
+AHw-29001+AHw-MakeEncoding.cs+AHw-Europa 3
|
||||
+AHw-38598+AHw-MakeEncoding.cs+AHw-ISO 8859-8 Hebrew (ISO-Logical)
|
||||
+AHw-50220+AHw-MakeEncoding.cs+AHw-ISO 2022 JIS Japanese with no halfwidth Katakana
|
||||
+AHw-50221+AHw-MakeEncoding.cs+AHw-ISO 2022 JIS Japanese with halfwidth Katakana
|
||||
+AHw-50222+AHw-MakeEncoding.cs+AHw-ISO 2022 Japanese JIS X 0201-1989 (1 byte Kana-SO/SI)
|
||||
+AHw-50225+AHw-MakeEncoding.cs+AHw-ISO 2022 Korean
|
||||
+AHw-50227+AHw-MakeEncoding.cs+AHw-ISO 2022 Simplified Chinese
|
||||
+AHw-51932+AHw-MakeEncoding.cs+AHw-EUC Japanese
|
||||
+AHw-51936+AHw-MakeEncoding.cs+AHw-EUC Simplified Chinese
|
||||
+AHw-51949+AHw-MakeEncoding.cs+AHw-EUC Korean
|
||||
+AHw-52936+AHw-MakeEncoding.cs+AHw-HZ-GB2312 Simplified Chinese
|
||||
+AHw-54936+AHw-MakeEncoding.cs+AHw-GB18030 Simplified Chinese (4 byte)
|
||||
+AHw-57002+AHw-MakeEncoding.cs+AHw-ISCII Devanagari
|
||||
+AHw-57003+AHw-MakeEncoding.cs+AHw-ISCII Bengali
|
||||
+AHw-57004+AHw-MakeEncoding.cs+AHw-ISCII Tamil
|
||||
+AHw-57005+AHw-MakeEncoding.cs+AHw-ISCII Telugu
|
||||
+AHw-57006+AHw-MakeEncoding.cs+AHw-ISCII Assamese
|
||||
+AHw-57007+AHw-MakeEncoding.cs+AHw-ISCII Oriya
|
||||
+AHw-57008+AHw-MakeEncoding.cs+AHw-ISCII Kannada
|
||||
+AHw-57009+AHw-MakeEncoding.cs+AHw-ISCII Malayalam
|
||||
+AHw-57010+AHw-MakeEncoding.cs+AHw-ISCII Gujarati
|
||||
+AHw-57011+AHw-MakeEncoding.cs+AHw-ISCII Punjabi
|
||||
+AHw-65000+AHw magic +AHw-Unicode (UTF-7)
|
||||
+AHw-65001+AHw magic +AHw-Unicode (UTF-8)
|
||||
+AHw CP+ACM +AHw Source +AHw Description +AHw
|
||||
+AHw---------:+AHw:-----------:+AHw:-----------------------------------------------------+AHw
|
||||
+AHw +AGA 37+AGA +AHw unicode.org +AHw IBM EBCDIC US-Canada +AHw
|
||||
+AHw +AGA 437+AGA +AHw unicode.org +AHw OEM United States +AHw
|
||||
+AHw +AGA 500+AGA +AHw unicode.org +AHw IBM EBCDIC International +AHw
|
||||
+AHw +AGA 620+AGA +AHw NLS +AHw Mazovia (Polish) MS-DOS +AHw
|
||||
+AHw +AGA 708+AGA +AHw Windows 7 +AHw Arabic (ASMO 708) +AHw
|
||||
+AHw +AGA 720+AGA +AHw Windows 7 +AHw Arabic (Transparent ASMO)+ADs Arabic (DOS) +AHw
|
||||
+AHw +AGA 737+AGA +AHw unicode.org +AHw OEM Greek (formerly 437G)+ADs Greek (DOS) +AHw
|
||||
+AHw +AGA 775+AGA +AHw unicode.org +AHw OEM Baltic+ADs Baltic (DOS) +AHw
|
||||
+AHw +AGA 808+AGA +AHw unicode.org +AHw OEM Russian+ADs Cyrillic +- Euro symbol +AHw
|
||||
+AHw +AGA 850+AGA +AHw unicode.org +AHw OEM Multilingual Latin 1+ADs Western European (DOS) +AHw
|
||||
+AHw +AGA 852+AGA +AHw unicode.org +AHw OEM Latin 2+ADs Central European (DOS) +AHw
|
||||
+AHw +AGA 855+AGA +AHw unicode.org +AHw OEM Cyrillic (primarily Russian) +AHw
|
||||
+AHw +AGA 857+AGA +AHw unicode.org +AHw OEM Turkish+ADs Turkish (DOS) +AHw
|
||||
+AHw +AGA 858+AGA +AHw Windows 7 +AHw OEM Multilingual Latin 1 +- Euro symbol +AHw
|
||||
+AHw +AGA 860+AGA +AHw unicode.org +AHw OEM Portuguese+ADs Portuguese (DOS) +AHw
|
||||
+AHw +AGA 861+AGA +AHw unicode.org +AHw OEM Icelandic+ADs Icelandic (DOS) +AHw
|
||||
+AHw +AGA 862+AGA +AHw unicode.org +AHw OEM Hebrew+ADs Hebrew (DOS) +AHw
|
||||
+AHw +AGA 863+AGA +AHw unicode.org +AHw OEM French Canadian+ADs French Canadian (DOS) +AHw
|
||||
+AHw +AGA 864+AGA +AHw unicode.org +AHw OEM Arabic+ADs Arabic (864) +AHw
|
||||
+AHw +AGA 865+AGA +AHw unicode.org +AHw OEM Nordic+ADs Nordic (DOS) +AHw
|
||||
+AHw +AGA 866+AGA +AHw unicode.org +AHw OEM Russian+ADs Cyrillic (DOS) +AHw
|
||||
+AHw +AGA 869+AGA +AHw unicode.org +AHw OEM Modern Greek+ADs Greek, Modern (DOS) +AHw
|
||||
+AHw +AGA 870+AGA +AHw Windows 7 +AHw IBM EBCDIC Multilingual/ROECE (Latin 2) +AHw
|
||||
+AHw +AGA 872+AGA +AHw unicode.org +AHw OEM Cyrillic (primarily Russian) +- Euro Symbol +AHw
|
||||
+AHw +AGA 874+AGA +AHw unicode.org +AHw Windows Thai +AHw
|
||||
+AHw +AGA 875+AGA +AHw unicode.org +AHw IBM EBCDIC Greek Modern +AHw
|
||||
+AHw +AGA 895+AGA +AHw NLS +AHw Kamenick+AP0 (Czech) MS-DOS +AHw
|
||||
+AHw +AGA 932+AGA +AHw unicode.org +AHw Japanese Shift-JIS +AHw
|
||||
+AHw +AGA 936+AGA +AHw unicode.org +AHw Simplified Chinese GBK +AHw
|
||||
+AHw +AGA 949+AGA +AHw unicode.org +AHw Korean +AHw
|
||||
+AHw +AGA 950+AGA +AHw unicode.org +AHw Traditional Chinese Big5 +AHw
|
||||
+AHw +AGA 1010+AGA +AHw IBM +AHw IBM EBCDIC French +AHw
|
||||
+AHw +AGA 1026+AGA +AHw unicode.org +AHw IBM EBCDIC Turkish (Latin 5) +AHw
|
||||
+AHw +AGA 1047+AGA +AHw Windows 7 +AHw IBM EBCDIC Latin 1/Open System +AHw
|
||||
+AHw +AGA 1132+AGA +AHw IBM +AHw IBM EBCDIC Lao (1132 / 1133 / 1341) +AHw
|
||||
+AHw +AGA 1140+AGA +AHw Windows 7 +AHw IBM EBCDIC US-Canada (037 +- Euro symbol) +AHw
|
||||
+AHw +AGA 1141+AGA +AHw Windows 7 +AHw IBM EBCDIC Germany (20273 +- Euro symbol) +AHw
|
||||
+AHw +AGA 1142+AGA +AHw Windows 7 +AHw IBM EBCDIC Denmark-Norway (20277 +- Euro symbol) +AHw
|
||||
+AHw +AGA 1143+AGA +AHw Windows 7 +AHw IBM EBCDIC Finland-Sweden (20278 +- Euro symbol) +AHw
|
||||
+AHw +AGA 1144+AGA +AHw Windows 7 +AHw IBM EBCDIC Italy (20280 +- Euro symbol) +AHw
|
||||
+AHw +AGA 1145+AGA +AHw Windows 7 +AHw IBM EBCDIC Latin America-Spain (20284 +- Euro symbol) +AHw
|
||||
+AHw +AGA 1146+AGA +AHw Windows 7 +AHw IBM EBCDIC United Kingdom (20285 +- Euro symbol) +AHw
|
||||
+AHw +AGA 1147+AGA +AHw Windows 7 +AHw IBM EBCDIC France (20297 +- Euro symbol) +AHw
|
||||
+AHw +AGA 1148+AGA +AHw Windows 7 +AHw IBM EBCDIC International (500 +- Euro symbol) +AHw
|
||||
+AHw +AGA 1149+AGA +AHw Windows 7 +AHw IBM EBCDIC Icelandic (20871 +- Euro symbol) +AHw
|
||||
+AHw +AGA 1200+AGA +AHw magic +AHw Unicode UTF-16, little endian (BMP of ISO 10646) +AHw
|
||||
+AHw +AGA 1201+AGA +AHw magic +AHw Unicode UTF-16, big endian +AHw
|
||||
+AHw +AGA 1250+AGA +AHw unicode.org +AHw Windows Central Europe +AHw
|
||||
+AHw +AGA 1251+AGA +AHw unicode.org +AHw Windows Cyrillic +AHw
|
||||
+AHw +AGA 1252+AGA +AHw unicode.org +AHw Windows Latin I +AHw
|
||||
+AHw +AGA 1253+AGA +AHw unicode.org +AHw Windows Greek +AHw
|
||||
+AHw +AGA 1254+AGA +AHw unicode.org +AHw Windows Turkish +AHw
|
||||
+AHw +AGA 1255+AGA +AHw unicode.org +AHw Windows Hebrew +AHw
|
||||
+AHw +AGA 1256+AGA +AHw unicode.org +AHw Windows Arabic +AHw
|
||||
+AHw +AGA 1257+AGA +AHw unicode.org +AHw Windows Baltic +AHw
|
||||
+AHw +AGA 1258+AGA +AHw unicode.org +AHw Windows Vietnam +AHw
|
||||
+AHw +AGA 1361+AGA +AHw Windows 7 +AHw Korean (Johab) +AHw
|
||||
+AHw +AGA-10000+AGA +AHw unicode.org +AHw MAC Roman +AHw
|
||||
+AHw +AGA-10001+AGA +AHw Windows 7 +AHw Japanese (Mac) +AHw
|
||||
+AHw +AGA-10002+AGA +AHw Windows 7 +AHw MAC Traditional Chinese (Big5) +AHw
|
||||
+AHw +AGA-10003+AGA +AHw Windows 7 +AHw Korean (Mac) +AHw
|
||||
+AHw +AGA-10004+AGA +AHw Windows 7 +AHw Arabic (Mac) +AHw
|
||||
+AHw +AGA-10005+AGA +AHw Windows 7 +AHw Hebrew (Mac) +AHw
|
||||
+AHw +AGA-10006+AGA +AHw unicode.org +AHw Greek (Mac) +AHw
|
||||
+AHw +AGA-10007+AGA +AHw unicode.org +AHw Cyrillic (Mac) +AHw
|
||||
+AHw +AGA-10008+AGA +AHw Windows 7 +AHw MAC Simplified Chinese (GB 2312) +AHw
|
||||
+AHw +AGA-10010+AGA +AHw Windows 7 +AHw Romanian (Mac) +AHw
|
||||
+AHw +AGA-10017+AGA +AHw Windows 7 +AHw Ukrainian (Mac) +AHw
|
||||
+AHw +AGA-10021+AGA +AHw Windows 7 +AHw Thai (Mac) +AHw
|
||||
+AHw +AGA-10029+AGA +AHw unicode.org +AHw MAC Latin 2 (Central European) +AHw
|
||||
+AHw +AGA-10079+AGA +AHw unicode.org +AHw Icelandic (Mac) +AHw
|
||||
+AHw +AGA-10081+AGA +AHw unicode.org +AHw Turkish (Mac) +AHw
|
||||
+AHw +AGA-10082+AGA +AHw Windows 7 +AHw Croatian (Mac) +AHw
|
||||
+AHw +AGA-12000+AGA +AHw magic +AHw Unicode UTF-32, little endian byte order +AHw
|
||||
+AHw +AGA-12001+AGA +AHw magic +AHw Unicode UTF-32, big endian byte order +AHw
|
||||
+AHw +AGA-20000+AGA +AHw Windows 7 +AHw CNS Taiwan (Chinese Traditional) +AHw
|
||||
+AHw +AGA-20001+AGA +AHw Windows 7 +AHw TCA Taiwan +AHw
|
||||
+AHw +AGA-20002+AGA +AHw Windows 7 +AHw Eten Taiwan (Chinese Traditional) +AHw
|
||||
+AHw +AGA-20003+AGA +AHw Windows 7 +AHw IBM5550 Taiwan +AHw
|
||||
+AHw +AGA-20004+AGA +AHw Windows 7 +AHw TeleText Taiwan +AHw
|
||||
+AHw +AGA-20005+AGA +AHw Windows 7 +AHw Wang Taiwan +AHw
|
||||
+AHw +AGA-20105+AGA +AHw Windows 7 +AHw Western European IA5 (IRV International Alphabet 5) +AHw
|
||||
+AHw +AGA-20106+AGA +AHw Windows 7 +AHw IA5 German (7-bit) +AHw
|
||||
+AHw +AGA-20107+AGA +AHw Windows 7 +AHw IA5 Swedish (7-bit) +AHw
|
||||
+AHw +AGA-20108+AGA +AHw Windows 7 +AHw IA5 Norwegian (7-bit) +AHw
|
||||
+AHw +AGA-20127+AGA +AHw magic +AHw US-ASCII (7-bit) +AHw
|
||||
+AHw +AGA-20261+AGA +AHw Windows 7 +AHw T.61 +AHw
|
||||
+AHw +AGA-20269+AGA +AHw Windows 7 +AHw ISO 6937 Non-Spacing Accent +AHw
|
||||
+AHw +AGA-20273+AGA +AHw Windows 7 +AHw IBM EBCDIC Germany +AHw
|
||||
+AHw +AGA-20277+AGA +AHw Windows 7 +AHw IBM EBCDIC Denmark-Norway +AHw
|
||||
+AHw +AGA-20278+AGA +AHw Windows 7 +AHw IBM EBCDIC Finland-Sweden +AHw
|
||||
+AHw +AGA-20280+AGA +AHw Windows 7 +AHw IBM EBCDIC Italy +AHw
|
||||
+AHw +AGA-20284+AGA +AHw Windows 7 +AHw IBM EBCDIC Latin America-Spain +AHw
|
||||
+AHw +AGA-20285+AGA +AHw Windows 7 +AHw IBM EBCDIC United Kingdom +AHw
|
||||
+AHw +AGA-20290+AGA +AHw Windows 7 +AHw IBM EBCDIC Japanese Katakana Extended +AHw
|
||||
+AHw +AGA-20297+AGA +AHw Windows 7 +AHw IBM EBCDIC France +AHw
|
||||
+AHw +AGA-20420+AGA +AHw Windows 7 +AHw IBM EBCDIC Arabic +AHw
|
||||
+AHw +AGA-20423+AGA +AHw Windows 7 +AHw IBM EBCDIC Greek +AHw
|
||||
+AHw +AGA-20424+AGA +AHw Windows 7 +AHw IBM EBCDIC Hebrew +AHw
|
||||
+AHw +AGA-20833+AGA +AHw Windows 7 +AHw IBM EBCDIC Korean Extended +AHw
|
||||
+AHw +AGA-20838+AGA +AHw Windows 7 +AHw IBM EBCDIC Thai +AHw
|
||||
+AHw +AGA-20866+AGA +AHw Windows 7 +AHw Russian Cyrillic (KOI8-R) +AHw
|
||||
+AHw +AGA-20871+AGA +AHw Windows 7 +AHw IBM EBCDIC Icelandic +AHw
|
||||
+AHw +AGA-20880+AGA +AHw Windows 7 +AHw IBM EBCDIC Cyrillic Russian +AHw
|
||||
+AHw +AGA-20905+AGA +AHw Windows 7 +AHw IBM EBCDIC Turkish +AHw
|
||||
+AHw +AGA-20924+AGA +AHw Windows 7 +AHw IBM EBCDIC Latin 1/Open System (1047 +- Euro symbol) +AHw
|
||||
+AHw +AGA-20932+AGA +AHw Windows 7 +AHw Japanese (JIS 0208-1990 and 0212-1990) +AHw
|
||||
+AHw +AGA-20936+AGA +AHw Windows 7 +AHw Simplified Chinese (GB2312-80) +AHw
|
||||
+AHw +AGA-20949+AGA +AHw Windows 7 +AHw Korean Wansung +AHw
|
||||
+AHw +AGA-21025+AGA +AHw Windows 7 +AHw IBM EBCDIC Cyrillic Serbian-Bulgarian +AHw
|
||||
+AHw +AGA-21027+AGA +AHw NLS +AHw Extended/Ext Alpha Lowercase +AHw
|
||||
+AHw +AGA-21866+AGA +AHw Windows 7 +AHw Ukrainian Cyrillic (KOI8-U) +AHw
|
||||
+AHw +AGA-28591+AGA +AHw unicode.org +AHw ISO 8859-1 Latin 1 (Western European) +AHw
|
||||
+AHw +AGA-28592+AGA +AHw unicode.org +AHw ISO 8859-2 Latin 2 (Central European) +AHw
|
||||
+AHw +AGA-28593+AGA +AHw unicode.org +AHw ISO 8859-3 Latin 3 +AHw
|
||||
+AHw +AGA-28594+AGA +AHw unicode.org +AHw ISO 8859-4 Baltic +AHw
|
||||
+AHw +AGA-28595+AGA +AHw unicode.org +AHw ISO 8859-5 Cyrillic +AHw
|
||||
+AHw +AGA-28596+AGA +AHw unicode.org +AHw ISO 8859-6 Arabic +AHw
|
||||
+AHw +AGA-28597+AGA +AHw unicode.org +AHw ISO 8859-7 Greek +AHw
|
||||
+AHw +AGA-28598+AGA +AHw unicode.org +AHw ISO 8859-8 Hebrew (ISO-Visual) +AHw
|
||||
+AHw +AGA-28599+AGA +AHw unicode.org +AHw ISO 8859-9 Turkish +AHw
|
||||
+AHw +AGA-28600+AGA +AHw unicode.org +AHw ISO 8859-10 Latin 6 +AHw
|
||||
+AHw +AGA-28601+AGA +AHw unicode.org +AHw ISO 8859-11 Latin (Thai) +AHw
|
||||
+AHw +AGA-28603+AGA +AHw unicode.org +AHw ISO 8859-13 Latin 7 (Estonian) +AHw
|
||||
+AHw +AGA-28604+AGA +AHw unicode.org +AHw ISO 8859-14 Latin 8 (Celtic) +AHw
|
||||
+AHw +AGA-28605+AGA +AHw unicode.org +AHw ISO 8859-15 Latin 9 +AHw
|
||||
+AHw +AGA-28606+AGA +AHw unicode.org +AHw ISO 8859-15 Latin 10 +AHw
|
||||
+AHw +AGA-29001+AGA +AHw Windows 7 +AHw Europa 3 +AHw
|
||||
+AHw +AGA-38598+AGA +AHw Windows 7 +AHw ISO 8859-8 Hebrew (ISO-Logical) +AHw
|
||||
+AHw +AGA-47451+AGA +AHw unicode.org +AHw Atari ST/TT +AHw
|
||||
+AHw +AGA-50220+AGA +AHw Windows 7 +AHw ISO 2022 JIS Japanese with no halfwidth Katakana +AHw
|
||||
+AHw +AGA-50221+AGA +AHw Windows 7 +AHw ISO 2022 JIS Japanese with halfwidth Katakana +AHw
|
||||
+AHw +AGA-50222+AGA +AHw Windows 7 +AHw ISO 2022 Japanese JIS X 0201-1989 (1 byte Kana-SO/SI)+AHw
|
||||
+AHw +AGA-50225+AGA +AHw Windows 7 +AHw ISO 2022 Korean +AHw
|
||||
+AHw +AGA-50227+AGA +AHw Windows 7 +AHw ISO 2022 Simplified Chinese +AHw
|
||||
+AHw +AGA-51932+AGA +AHw Windows 7 +AHw EUC Japanese +AHw
|
||||
+AHw +AGA-51936+AGA +AHw Windows 7 +AHw EUC Simplified Chinese +AHw
|
||||
+AHw +AGA-51949+AGA +AHw Windows 7 +AHw EUC Korean +AHw
|
||||
+AHw +AGA-52936+AGA +AHw Windows 7 +AHw HZ-GB2312 Simplified Chinese +AHw
|
||||
+AHw +AGA-54936+AGA +AHw Windows 7 +AHw GB18030 Simplified Chinese (4 byte) +AHw
|
||||
+AHw +AGA-57002+AGA +AHw Windows 7 +AHw ISCII Devanagari +AHw
|
||||
+AHw +AGA-57003+AGA +AHw Windows 7 +AHw ISCII Bengali +AHw
|
||||
+AHw +AGA-57004+AGA +AHw Windows 7 +AHw ISCII Tamil +AHw
|
||||
+AHw +AGA-57005+AGA +AHw Windows 7 +AHw ISCII Telugu +AHw
|
||||
+AHw +AGA-57006+AGA +AHw Windows 7 +AHw ISCII Assamese +AHw
|
||||
+AHw +AGA-57007+AGA +AHw Windows 7 +AHw ISCII Oriya +AHw
|
||||
+AHw +AGA-57008+AGA +AHw Windows 7 +AHw ISCII Kannada +AHw
|
||||
+AHw +AGA-57009+AGA +AHw Windows 7 +AHw ISCII Malayalam +AHw
|
||||
+AHw +AGA-57010+AGA +AHw Windows 7 +AHw ISCII Gujarati +AHw
|
||||
+AHw +AGA-57011+AGA +AHw Windows 7 +AHw ISCII Punjabi +AHw
|
||||
+AHw +AGA-65000+AGA +AHw magic +AHw Unicode (UTF-7) +AHw
|
||||
+AHw +AGA-65001+AGA +AHw magic +AHw Unicode (UTF-8) +AHw
|
||||
|
||||
Note that MakeEncoding.cs deviates from unicode.org for some codepages. In the
|
||||
case of direct conflicts, unicode.org takes precedence. In cases where the
|
||||
unicode.org listing does not prescribe a value, MakeEncoding.cs value is used.
|
||||
+AGA-unicode.org+AGA refers to the Unicode Consortium Public Mappings, a database of
|
||||
various mappings between unicode characters and respective character sets. The
|
||||
tables are processed by a few scripts in the build process.
|
||||
|
||||
NLS refers to the National Language Support files supplied in various versions of
|
||||
Windows. In older versions of Windows (e.g. Windows 98) these files followed the
|
||||
pattern +AGA-CP+AF8AIw.NLS+AGA, but newer versions use the pattern +AGA-C+AF8AIw.NLS+AGA.
|
||||
+AGA-IBM+AGA refers to the IBM coded character set database. Even though IBM uses a
|
||||
different numbering scheme from Windows, the IBM numbers are used when there is
|
||||
no conflict. The tables are manually generated from the symbol PDFs.
|
||||
|
||||
+AGA-Windows 7+AGA refers to direct inspection of Windows 7 machines using .NET class
|
||||
+AGA-System.Text.Encoding+AGA. The enclosed +AGA-MakeEncoding.cs+AGA C+ACM program brute-forces
|
||||
code pages. MakeEncoding.cs deviates from unicode.org in some cases. When they
|
||||
map a given code to different characters, unicode.org value is used. When
|
||||
unicode.org does not prescribe a value, MakeEncoding.cs value is used.
|
||||
|
||||
+AGA-NLS+AGA refers to the National Language Support files supplied in various versions
|
||||
of Windows. In older versions of Windows (e.g. Windows 98) these files followed
|
||||
the name pattern +AGA-CP+AF8AIw.NLS+AGA, but newer versions use the name pattern +AGA-C+AF8AIw.NLS+AGA.
|
||||
|
||||
+ACMAIw Sources
|
||||
|
||||
- +AFs-Unicode Consortium Public Mappings+AF0(http://www.unicode.org/Public/MAPPINGS/)
|
||||
- +AFs-Code Page Enumeration+AF0(http://msdn.microsoft.com/en-us/library/cc195051.aspx)
|
||||
- +AFs-Code Page Identifiers+AF0(http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756.aspx)
|
||||
- +AFs-Windows Code Page Enumeration+AF0(http://msdn.microsoft.com/en-us/library/cc195051.aspx)
|
||||
- +AFs-Windows Code Page Identifiers+AF0(http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756.aspx)
|
||||
- +AFs-IBM Coded Character Sets+AF0(https://www-01.ibm.com/software/globalization/ccsid/ccsid+AF8-registered.html)
|
||||
|
||||
+ACMAIw Badges
|
||||
|
||||
|
@ -47,27 +47,33 @@ appropriate codepage scripts were loaded.
|
||||
|
||||
## Usage
|
||||
|
||||
The codepages are indexed by number. To get the unicode character for a given
|
||||
Most codepages are indexed by number. To get the unicode character for a given
|
||||
codepoint, use the `dec` property:
|
||||
|
||||
var unicode_cp10000_255 = cptable[10000].dec[255]; // ˇ
|
||||
```js
|
||||
var unicode_cp10000_255 = cptable[10000].dec[255]; // ˇ
|
||||
```
|
||||
|
||||
To get the codepoint for a given character, use the `enc` property:
|
||||
|
||||
var cp10000_711 = cptable[10000].enc[String.fromCharCode(711)]; // 255
|
||||
```js
|
||||
var cp10000_711 = cptable[10000].enc[String.fromCharCode(711)]; // 255
|
||||
```
|
||||
|
||||
There are a few utilities that deal with strings and buffers:
|
||||
|
||||
var 汇总 = cptable.utils.decode(936, [0xbb,0xe3,0xd7,0xdc]);
|
||||
var buf = cptable.utils.encode(936, 汇总);
|
||||
var sushi= cptable.utils.decode(65001, [0xf0,0x9f,0x8d,0xa3]); // 🍣
|
||||
var sbuf = cptable.utils.encode(65001, sushi);
|
||||
```js
|
||||
var 汇总 = cptable.utils.decode(936, [0xbb,0xe3,0xd7,0xdc]);
|
||||
var buf = cptable.utils.encode(936, 汇总);
|
||||
var sushi= cptable.utils.decode(65001, [0xf0,0x9f,0x8d,0xa3]); // 🍣
|
||||
var sbuf = cptable.utils.encode(65001, sushi);
|
||||
```
|
||||
|
||||
`cptable.utils.encode(CP, data, ofmt)` accepts a String or Array of characters
|
||||
and returns a representation controlled by `ofmt`:
|
||||
|
||||
- Default output is a Buffer (or Array) of bytes (integers between 0 and 255).
|
||||
- If `ofmt == 'str'`, return a String where `o.charCodeAt(i)` is the ith byte
|
||||
- If `ofmt == 'str'`, return a String where `o.charCodeAt(i)` is the `i`-th byte
|
||||
- If `ofmt == 'arr'`, return an Array of bytes
|
||||
|
||||
## Known Excel Codepages
|
||||
@ -79,7 +85,9 @@ needed.
|
||||
|
||||
In node:
|
||||
|
||||
var cptable = require('codepage/dist/cpexcel.full');
|
||||
```js
|
||||
var cptable = require('codepage/dist/cpexcel.full');
|
||||
```
|
||||
|
||||
## Rolling your own script
|
||||
|
||||
@ -87,7 +95,9 @@ The `make.sh` script in the repo can take a manifest and generate JS source.
|
||||
|
||||
Usage:
|
||||
|
||||
bash make.sh path_to_manifest output_file_name JSVAR
|
||||
```bash
|
||||
bash make.sh path_to_manifest output_file_name JSVAR
|
||||
```
|
||||
|
||||
where
|
||||
|
||||
@ -119,171 +129,187 @@ the JS source is `codepage.md`, so building is as simple as `voc codepage.md`.
|
||||
The complete list of hardcoded codepages can be found in the file `pages.csv`.
|
||||
|
||||
Some codepages are easier to implement algorithmically. Since these are
|
||||
hardcoded in utils, there is no corresponding entry (they are "magic")
|
||||
hardcoded in `utils`, there is no corresponding entry (they are "magic").
|
||||
|
||||
| CP# | Information | Description |
|
||||
| --: | :----------: | :---------- |
|
||||
| 37| unicode.org |IBM EBCDIC US-Canada
|
||||
| 437| unicode.org |OEM United States
|
||||
| 500| unicode.org |IBM EBCDIC International
|
||||
| 620| NLS |Mazovia (Polish) MS-DOS
|
||||
| 708|MakeEncoding.cs|Arabic (ASMO 708)
|
||||
| 720|MakeEncoding.cs|Arabic (Transparent ASMO); Arabic (DOS)
|
||||
| 737| unicode.org |OEM Greek (formerly 437G); Greek (DOS)
|
||||
| 775| unicode.org |OEM Baltic; Baltic (DOS)
|
||||
| 850| unicode.org |OEM Multilingual Latin 1; Western European (DOS)
|
||||
| 852| unicode.org |OEM Latin 2; Central European (DOS)
|
||||
| 855| unicode.org |OEM Cyrillic (primarily Russian)
|
||||
| 857| unicode.org |OEM Turkish; Turkish (DOS)
|
||||
| 858|MakeEncoding.cs|OEM Multilingual Latin 1 + Euro symbol
|
||||
| 860| unicode.org |OEM Portuguese; Portuguese (DOS)
|
||||
| 861| unicode.org |OEM Icelandic; Icelandic (DOS)
|
||||
| 862| unicode.org |OEM Hebrew; Hebrew (DOS)
|
||||
| 863| unicode.org |OEM French Canadian; French Canadian (DOS)
|
||||
| 864| unicode.org |OEM Arabic; Arabic (864)
|
||||
| 865| unicode.org |OEM Nordic; Nordic (DOS)
|
||||
| 866| unicode.org |OEM Russian; Cyrillic (DOS)
|
||||
| 869| unicode.org |OEM Modern Greek; Greek, Modern (DOS)
|
||||
| 870|MakeEncoding.cs|IBM EBCDIC Multilingual/ROECE (Latin 2)
|
||||
| 874| unicode.org |Windows Thai
|
||||
| 875| unicode.org |IBM EBCDIC Greek Modern
|
||||
| 895| NLS |Kamenický (Czech) MS-DOS
|
||||
| 932| unicode.org |Japanese Shift-JIS
|
||||
| 936| unicode.org |Simplified Chinese GBK
|
||||
| 949| unicode.org |Korean
|
||||
| 950| unicode.org |Traditional Chinese Big5
|
||||
| 1026| unicode.org |IBM EBCDIC Turkish (Latin 5)
|
||||
| 1047|MakeEncoding.cs|IBM EBCDIC Latin 1/Open System
|
||||
| 1140|MakeEncoding.cs|IBM EBCDIC US-Canada (037 + Euro symbol)
|
||||
| 1141|MakeEncoding.cs|IBM EBCDIC Germany (20273 + Euro symbol)
|
||||
| 1142|MakeEncoding.cs|IBM EBCDIC Denmark-Norway (20277 + Euro symbol)
|
||||
| 1143|MakeEncoding.cs|IBM EBCDIC Finland-Sweden (20278 + Euro symbol)
|
||||
| 1144|MakeEncoding.cs|IBM EBCDIC Italy (20280 + Euro symbol)
|
||||
| 1145|MakeEncoding.cs|IBM EBCDIC Latin America-Spain (20284 + Euro symbol)
|
||||
| 1146|MakeEncoding.cs|IBM EBCDIC United Kingdom (20285 + Euro symbol)
|
||||
| 1147|MakeEncoding.cs|IBM EBCDIC France (20297 + Euro symbol)
|
||||
| 1148|MakeEncoding.cs|IBM EBCDIC International (500 + Euro symbol)
|
||||
| 1149|MakeEncoding.cs|IBM EBCDIC Icelandic (20871 + Euro symbol)
|
||||
| 1200| magic |Unicode UTF-16, little endian (BMP of ISO 10646)
|
||||
| 1201| magic |Unicode UTF-16, big endian
|
||||
| 1250| unicode.org |Windows Central Europe
|
||||
| 1251| unicode.org |Windows Cyrillic
|
||||
| 1252| unicode.org |Windows Latin I
|
||||
| 1253| unicode.org |Windows Greek
|
||||
| 1254| unicode.org |Windows Turkish
|
||||
| 1255| unicode.org |Windows Hebrew
|
||||
| 1256| unicode.org |Windows Arabic
|
||||
| 1257| unicode.org |Windows Baltic
|
||||
| 1258| unicode.org |Windows Vietnam
|
||||
| 1361|MakeEncoding.cs|Korean (Johab)
|
||||
|10000| unicode.org |MAC Roman
|
||||
|10001|MakeEncoding.cs|Japanese (Mac)
|
||||
|10002|MakeEncoding.cs|MAC Traditional Chinese (Big5)
|
||||
|10003|MakeEncoding.cs|Korean (Mac)
|
||||
|10004|MakeEncoding.cs|Arabic (Mac)
|
||||
|10005|MakeEncoding.cs|Hebrew (Mac)
|
||||
|10006| unicode.org |Greek (Mac)
|
||||
|10007| unicode.org |Cyrillic (Mac)
|
||||
|10008|MakeEncoding.cs|MAC Simplified Chinese (GB 2312)
|
||||
|10010|MakeEncoding.cs|Romanian (Mac)
|
||||
|10017|MakeEncoding.cs|Ukrainian (Mac)
|
||||
|10021|MakeEncoding.cs|Thai (Mac)
|
||||
|10029| unicode.org |MAC Latin 2 (Central European)
|
||||
|10079| unicode.org |Icelandic (Mac)
|
||||
|10081| unicode.org |Turkish (Mac)
|
||||
|10082|MakeEncoding.cs|Croatian (Mac)
|
||||
|12000| magic |Unicode UTF-32, little endian byte order
|
||||
|12001| magic |Unicode UTF-32, big endian byte order
|
||||
|20000|MakeEncoding.cs|CNS Taiwan (Chinese Traditional)
|
||||
|20001|MakeEncoding.cs|TCA Taiwan
|
||||
|20002|MakeEncoding.cs|Eten Taiwan (Chinese Traditional)
|
||||
|20003|MakeEncoding.cs|IBM5550 Taiwan
|
||||
|20004|MakeEncoding.cs|TeleText Taiwan
|
||||
|20005|MakeEncoding.cs|Wang Taiwan
|
||||
|20105|MakeEncoding.cs|Western European IA5 (IRV International Alphabet 5) 7-bit
|
||||
|20106|MakeEncoding.cs|IA5 German (7-bit)
|
||||
|20107|MakeEncoding.cs|IA5 Swedish (7-bit)
|
||||
|20108|MakeEncoding.cs|IA5 Norwegian (7-bit)
|
||||
|20127| magic |US-ASCII (7-bit)
|
||||
|20261|MakeEncoding.cs|T.61
|
||||
|20269|MakeEncoding.cs|ISO 6937 Non-Spacing Accent
|
||||
|20273|MakeEncoding.cs|IBM EBCDIC Germany
|
||||
|20277|MakeEncoding.cs|IBM EBCDIC Denmark-Norway
|
||||
|20278|MakeEncoding.cs|IBM EBCDIC Finland-Sweden
|
||||
|20280|MakeEncoding.cs|IBM EBCDIC Italy
|
||||
|20284|MakeEncoding.cs|IBM EBCDIC Latin America-Spain
|
||||
|20285|MakeEncoding.cs|IBM EBCDIC United Kingdom
|
||||
|20290|MakeEncoding.cs|IBM EBCDIC Japanese Katakana Extended
|
||||
|20297|MakeEncoding.cs|IBM EBCDIC France
|
||||
|20420|MakeEncoding.cs|IBM EBCDIC Arabic
|
||||
|20423|MakeEncoding.cs|IBM EBCDIC Greek
|
||||
|20424|MakeEncoding.cs|IBM EBCDIC Hebrew
|
||||
|20833|MakeEncoding.cs|IBM EBCDIC Korean Extended
|
||||
|20838|MakeEncoding.cs|IBM EBCDIC Thai
|
||||
|20866|MakeEncoding.cs|Russian Cyrillic (KOI8-R)
|
||||
|20871|MakeEncoding.cs|IBM EBCDIC Icelandic
|
||||
|20880|MakeEncoding.cs|IBM EBCDIC Cyrillic Russian
|
||||
|20905|MakeEncoding.cs|IBM EBCDIC Turkish
|
||||
|20924|MakeEncoding.cs|IBM EBCDIC Latin 1/Open System (1047 + Euro symbol)
|
||||
|20932|MakeEncoding.cs|Japanese (JIS 0208-1990 and 0212-1990)
|
||||
|20936|MakeEncoding.cs|Simplified Chinese (GB2312-80)
|
||||
|20949|MakeEncoding.cs|Korean Wansung
|
||||
|21025|MakeEncoding.cs|IBM EBCDIC Cyrillic Serbian-Bulgarian
|
||||
|21027| NLS |Extended/Ext Alpha Lowercase
|
||||
|21866|MakeEncoding.cs|Ukrainian Cyrillic (KOI8-U)
|
||||
|28591| unicode.org |ISO 8859-1 Latin 1 (Western European)
|
||||
|28592| unicode.org |ISO 8859-2 Latin 2 (Central European)
|
||||
|28593| unicode.org |ISO 8859-3 Latin 3
|
||||
|28594| unicode.org |ISO 8859-4 Baltic
|
||||
|28595| unicode.org |ISO 8859-5 Cyrillic
|
||||
|28596| unicode.org |ISO 8859-6 Arabic
|
||||
|28597| unicode.org |ISO 8859-7 Greek
|
||||
|28598| unicode.org |ISO 8859-8 Hebrew (ISO-Visual)
|
||||
|28599| unicode.org |ISO 8859-9 Turkish
|
||||
|28600| unicode.org |ISO 8859-10 Latin 6
|
||||
|28601| unicode.org |ISO 8859-11 Latin (Thai)
|
||||
|28603| unicode.org |ISO 8859-13 Latin 7 (Estonian)
|
||||
|28604| unicode.org |ISO 8859-14 Latin 8 (Celtic)
|
||||
|28605| unicode.org |ISO 8859-15 Latin 9
|
||||
|28606| unicode.org |ISO 8859-15 Latin 10
|
||||
|29001|MakeEncoding.cs|Europa 3
|
||||
|38598|MakeEncoding.cs|ISO 8859-8 Hebrew (ISO-Logical)
|
||||
|50220|MakeEncoding.cs|ISO 2022 JIS Japanese with no halfwidth Katakana
|
||||
|50221|MakeEncoding.cs|ISO 2022 JIS Japanese with halfwidth Katakana
|
||||
|50222|MakeEncoding.cs|ISO 2022 Japanese JIS X 0201-1989 (1 byte Kana-SO/SI)
|
||||
|50225|MakeEncoding.cs|ISO 2022 Korean
|
||||
|50227|MakeEncoding.cs|ISO 2022 Simplified Chinese
|
||||
|51932|MakeEncoding.cs|EUC Japanese
|
||||
|51936|MakeEncoding.cs|EUC Simplified Chinese
|
||||
|51949|MakeEncoding.cs|EUC Korean
|
||||
|52936|MakeEncoding.cs|HZ-GB2312 Simplified Chinese
|
||||
|54936|MakeEncoding.cs|GB18030 Simplified Chinese (4 byte)
|
||||
|57002|MakeEncoding.cs|ISCII Devanagari
|
||||
|57003|MakeEncoding.cs|ISCII Bengali
|
||||
|57004|MakeEncoding.cs|ISCII Tamil
|
||||
|57005|MakeEncoding.cs|ISCII Telugu
|
||||
|57006|MakeEncoding.cs|ISCII Assamese
|
||||
|57007|MakeEncoding.cs|ISCII Oriya
|
||||
|57008|MakeEncoding.cs|ISCII Kannada
|
||||
|57009|MakeEncoding.cs|ISCII Malayalam
|
||||
|57010|MakeEncoding.cs|ISCII Gujarati
|
||||
|57011|MakeEncoding.cs|ISCII Punjabi
|
||||
|65000| magic |Unicode (UTF-7)
|
||||
|65001| magic |Unicode (UTF-8)
|
||||
| CP# | Source | Description |
|
||||
|--------:|:-----------:|:-----------------------------------------------------|
|
||||
| ` 37` | unicode.org | IBM EBCDIC US-Canada |
|
||||
| ` 437` | unicode.org | OEM United States |
|
||||
| ` 500` | unicode.org | IBM EBCDIC International |
|
||||
| ` 620` | NLS | Mazovia (Polish) MS-DOS |
|
||||
| ` 708` | Windows 7 | Arabic (ASMO 708) |
|
||||
| ` 720` | Windows 7 | Arabic (Transparent ASMO); Arabic (DOS) |
|
||||
| ` 737` | unicode.org | OEM Greek (formerly 437G); Greek (DOS) |
|
||||
| ` 775` | unicode.org | OEM Baltic; Baltic (DOS) |
|
||||
| ` 808` | unicode.org | OEM Russian; Cyrillic + Euro symbol |
|
||||
| ` 850` | unicode.org | OEM Multilingual Latin 1; Western European (DOS) |
|
||||
| ` 852` | unicode.org | OEM Latin 2; Central European (DOS) |
|
||||
| ` 855` | unicode.org | OEM Cyrillic (primarily Russian) |
|
||||
| ` 857` | unicode.org | OEM Turkish; Turkish (DOS) |
|
||||
| ` 858` | Windows 7 | OEM Multilingual Latin 1 + Euro symbol |
|
||||
| ` 860` | unicode.org | OEM Portuguese; Portuguese (DOS) |
|
||||
| ` 861` | unicode.org | OEM Icelandic; Icelandic (DOS) |
|
||||
| ` 862` | unicode.org | OEM Hebrew; Hebrew (DOS) |
|
||||
| ` 863` | unicode.org | OEM French Canadian; French Canadian (DOS) |
|
||||
| ` 864` | unicode.org | OEM Arabic; Arabic (864) |
|
||||
| ` 865` | unicode.org | OEM Nordic; Nordic (DOS) |
|
||||
| ` 866` | unicode.org | OEM Russian; Cyrillic (DOS) |
|
||||
| ` 869` | unicode.org | OEM Modern Greek; Greek, Modern (DOS) |
|
||||
| ` 870` | Windows 7 | IBM EBCDIC Multilingual/ROECE (Latin 2) |
|
||||
| ` 872` | unicode.org | OEM Cyrillic (primarily Russian) + Euro Symbol |
|
||||
| ` 874` | unicode.org | Windows Thai |
|
||||
| ` 875` | unicode.org | IBM EBCDIC Greek Modern |
|
||||
| ` 895` | NLS | Kamenický (Czech) MS-DOS |
|
||||
| ` 932` | unicode.org | Japanese Shift-JIS |
|
||||
| ` 936` | unicode.org | Simplified Chinese GBK |
|
||||
| ` 949` | unicode.org | Korean |
|
||||
| ` 950` | unicode.org | Traditional Chinese Big5 |
|
||||
| ` 1010` | IBM | IBM EBCDIC French |
|
||||
| ` 1026` | unicode.org | IBM EBCDIC Turkish (Latin 5) |
|
||||
| ` 1047` | Windows 7 | IBM EBCDIC Latin 1/Open System |
|
||||
| ` 1132` | IBM | IBM EBCDIC Lao (1132 / 1133 / 1341) |
|
||||
| ` 1140` | Windows 7 | IBM EBCDIC US-Canada (037 + Euro symbol) |
|
||||
| ` 1141` | Windows 7 | IBM EBCDIC Germany (20273 + Euro symbol) |
|
||||
| ` 1142` | Windows 7 | IBM EBCDIC Denmark-Norway (20277 + Euro symbol) |
|
||||
| ` 1143` | Windows 7 | IBM EBCDIC Finland-Sweden (20278 + Euro symbol) |
|
||||
| ` 1144` | Windows 7 | IBM EBCDIC Italy (20280 + Euro symbol) |
|
||||
| ` 1145` | Windows 7 | IBM EBCDIC Latin America-Spain (20284 + Euro symbol) |
|
||||
| ` 1146` | Windows 7 | IBM EBCDIC United Kingdom (20285 + Euro symbol) |
|
||||
| ` 1147` | Windows 7 | IBM EBCDIC France (20297 + Euro symbol) |
|
||||
| ` 1148` | Windows 7 | IBM EBCDIC International (500 + Euro symbol) |
|
||||
| ` 1149` | Windows 7 | IBM EBCDIC Icelandic (20871 + Euro symbol) |
|
||||
| ` 1200` | magic | Unicode UTF-16, little endian (BMP of ISO 10646) |
|
||||
| ` 1201` | magic | Unicode UTF-16, big endian |
|
||||
| ` 1250` | unicode.org | Windows Central Europe |
|
||||
| ` 1251` | unicode.org | Windows Cyrillic |
|
||||
| ` 1252` | unicode.org | Windows Latin I |
|
||||
| ` 1253` | unicode.org | Windows Greek |
|
||||
| ` 1254` | unicode.org | Windows Turkish |
|
||||
| ` 1255` | unicode.org | Windows Hebrew |
|
||||
| ` 1256` | unicode.org | Windows Arabic |
|
||||
| ` 1257` | unicode.org | Windows Baltic |
|
||||
| ` 1258` | unicode.org | Windows Vietnam |
|
||||
| ` 1361` | Windows 7 | Korean (Johab) |
|
||||
| `10000` | unicode.org | MAC Roman |
|
||||
| `10001` | Windows 7 | Japanese (Mac) |
|
||||
| `10002` | Windows 7 | MAC Traditional Chinese (Big5) |
|
||||
| `10003` | Windows 7 | Korean (Mac) |
|
||||
| `10004` | Windows 7 | Arabic (Mac) |
|
||||
| `10005` | Windows 7 | Hebrew (Mac) |
|
||||
| `10006` | unicode.org | Greek (Mac) |
|
||||
| `10007` | unicode.org | Cyrillic (Mac) |
|
||||
| `10008` | Windows 7 | MAC Simplified Chinese (GB 2312) |
|
||||
| `10010` | Windows 7 | Romanian (Mac) |
|
||||
| `10017` | Windows 7 | Ukrainian (Mac) |
|
||||
| `10021` | Windows 7 | Thai (Mac) |
|
||||
| `10029` | unicode.org | MAC Latin 2 (Central European) |
|
||||
| `10079` | unicode.org | Icelandic (Mac) |
|
||||
| `10081` | unicode.org | Turkish (Mac) |
|
||||
| `10082` | Windows 7 | Croatian (Mac) |
|
||||
| `12000` | magic | Unicode UTF-32, little endian byte order |
|
||||
| `12001` | magic | Unicode UTF-32, big endian byte order |
|
||||
| `20000` | Windows 7 | CNS Taiwan (Chinese Traditional) |
|
||||
| `20001` | Windows 7 | TCA Taiwan |
|
||||
| `20002` | Windows 7 | Eten Taiwan (Chinese Traditional) |
|
||||
| `20003` | Windows 7 | IBM5550 Taiwan |
|
||||
| `20004` | Windows 7 | TeleText Taiwan |
|
||||
| `20005` | Windows 7 | Wang Taiwan |
|
||||
| `20105` | Windows 7 | Western European IA5 (IRV International Alphabet 5) |
|
||||
| `20106` | Windows 7 | IA5 German (7-bit) |
|
||||
| `20107` | Windows 7 | IA5 Swedish (7-bit) |
|
||||
| `20108` | Windows 7 | IA5 Norwegian (7-bit) |
|
||||
| `20127` | magic | US-ASCII (7-bit) |
|
||||
| `20261` | Windows 7 | T.61 |
|
||||
| `20269` | Windows 7 | ISO 6937 Non-Spacing Accent |
|
||||
| `20273` | Windows 7 | IBM EBCDIC Germany |
|
||||
| `20277` | Windows 7 | IBM EBCDIC Denmark-Norway |
|
||||
| `20278` | Windows 7 | IBM EBCDIC Finland-Sweden |
|
||||
| `20280` | Windows 7 | IBM EBCDIC Italy |
|
||||
| `20284` | Windows 7 | IBM EBCDIC Latin America-Spain |
|
||||
| `20285` | Windows 7 | IBM EBCDIC United Kingdom |
|
||||
| `20290` | Windows 7 | IBM EBCDIC Japanese Katakana Extended |
|
||||
| `20297` | Windows 7 | IBM EBCDIC France |
|
||||
| `20420` | Windows 7 | IBM EBCDIC Arabic |
|
||||
| `20423` | Windows 7 | IBM EBCDIC Greek |
|
||||
| `20424` | Windows 7 | IBM EBCDIC Hebrew |
|
||||
| `20833` | Windows 7 | IBM EBCDIC Korean Extended |
|
||||
| `20838` | Windows 7 | IBM EBCDIC Thai |
|
||||
| `20866` | Windows 7 | Russian Cyrillic (KOI8-R) |
|
||||
| `20871` | Windows 7 | IBM EBCDIC Icelandic |
|
||||
| `20880` | Windows 7 | IBM EBCDIC Cyrillic Russian |
|
||||
| `20905` | Windows 7 | IBM EBCDIC Turkish |
|
||||
| `20924` | Windows 7 | IBM EBCDIC Latin 1/Open System (1047 + Euro symbol) |
|
||||
| `20932` | Windows 7 | Japanese (JIS 0208-1990 and 0212-1990) |
|
||||
| `20936` | Windows 7 | Simplified Chinese (GB2312-80) |
|
||||
| `20949` | Windows 7 | Korean Wansung |
|
||||
| `21025` | Windows 7 | IBM EBCDIC Cyrillic Serbian-Bulgarian |
|
||||
| `21027` | NLS | Extended/Ext Alpha Lowercase |
|
||||
| `21866` | Windows 7 | Ukrainian Cyrillic (KOI8-U) |
|
||||
| `28591` | unicode.org | ISO 8859-1 Latin 1 (Western European) |
|
||||
| `28592` | unicode.org | ISO 8859-2 Latin 2 (Central European) |
|
||||
| `28593` | unicode.org | ISO 8859-3 Latin 3 |
|
||||
| `28594` | unicode.org | ISO 8859-4 Baltic |
|
||||
| `28595` | unicode.org | ISO 8859-5 Cyrillic |
|
||||
| `28596` | unicode.org | ISO 8859-6 Arabic |
|
||||
| `28597` | unicode.org | ISO 8859-7 Greek |
|
||||
| `28598` | unicode.org | ISO 8859-8 Hebrew (ISO-Visual) |
|
||||
| `28599` | unicode.org | ISO 8859-9 Turkish |
|
||||
| `28600` | unicode.org | ISO 8859-10 Latin 6 |
|
||||
| `28601` | unicode.org | ISO 8859-11 Latin (Thai) |
|
||||
| `28603` | unicode.org | ISO 8859-13 Latin 7 (Estonian) |
|
||||
| `28604` | unicode.org | ISO 8859-14 Latin 8 (Celtic) |
|
||||
| `28605` | unicode.org | ISO 8859-15 Latin 9 |
|
||||
| `28606` | unicode.org | ISO 8859-15 Latin 10 |
|
||||
| `29001` | Windows 7 | Europa 3 |
|
||||
| `38598` | Windows 7 | ISO 8859-8 Hebrew (ISO-Logical) |
|
||||
| `47451` | unicode.org | Atari ST/TT |
|
||||
| `50220` | Windows 7 | ISO 2022 JIS Japanese with no halfwidth Katakana |
|
||||
| `50221` | Windows 7 | ISO 2022 JIS Japanese with halfwidth Katakana |
|
||||
| `50222` | Windows 7 | ISO 2022 Japanese JIS X 0201-1989 (1 byte Kana-SO/SI)|
|
||||
| `50225` | Windows 7 | ISO 2022 Korean |
|
||||
| `50227` | Windows 7 | ISO 2022 Simplified Chinese |
|
||||
| `51932` | Windows 7 | EUC Japanese |
|
||||
| `51936` | Windows 7 | EUC Simplified Chinese |
|
||||
| `51949` | Windows 7 | EUC Korean |
|
||||
| `52936` | Windows 7 | HZ-GB2312 Simplified Chinese |
|
||||
| `54936` | Windows 7 | GB18030 Simplified Chinese (4 byte) |
|
||||
| `57002` | Windows 7 | ISCII Devanagari |
|
||||
| `57003` | Windows 7 | ISCII Bengali |
|
||||
| `57004` | Windows 7 | ISCII Tamil |
|
||||
| `57005` | Windows 7 | ISCII Telugu |
|
||||
| `57006` | Windows 7 | ISCII Assamese |
|
||||
| `57007` | Windows 7 | ISCII Oriya |
|
||||
| `57008` | Windows 7 | ISCII Kannada |
|
||||
| `57009` | Windows 7 | ISCII Malayalam |
|
||||
| `57010` | Windows 7 | ISCII Gujarati |
|
||||
| `57011` | Windows 7 | ISCII Punjabi |
|
||||
| `65000` | magic | Unicode (UTF-7) |
|
||||
| `65001` | magic | Unicode (UTF-8) |
|
||||
|
||||
Note that MakeEncoding.cs deviates from unicode.org for some codepages. In the
|
||||
case of direct conflicts, unicode.org takes precedence. In cases where the
|
||||
unicode.org listing does not prescribe a value, MakeEncoding.cs value is used.
|
||||
`unicode.org` refers to the Unicode Consortium Public Mappings, a database of
|
||||
various mappings between unicode characters and respective character sets. The
|
||||
tables are processed by a few scripts in the build process.
|
||||
|
||||
NLS refers to the National Language Support files supplied in various versions of
|
||||
Windows. In older versions of Windows (e.g. Windows 98) these files followed the
|
||||
pattern `CP_#.NLS`, but newer versions use the pattern `C_#.NLS`.
|
||||
`IBM` refers to the IBM coded character set database. Even though IBM uses a
|
||||
different numbering scheme from Windows, the IBM numbers are used when there is
|
||||
no conflict. The tables are manually generated from the symbol PDFs.
|
||||
|
||||
`Windows 7` refers to direct inspection of Windows 7 machines using .NET class
|
||||
`System.Text.Encoding`. The enclosed `MakeEncoding.cs` C# program brute-forces
|
||||
code pages. MakeEncoding.cs deviates from unicode.org in some cases. When they
|
||||
map a given code to different characters, unicode.org value is used. When
|
||||
unicode.org does not prescribe a value, MakeEncoding.cs value is used.
|
||||
|
||||
`NLS` refers to the National Language Support files supplied in various versions
|
||||
of Windows. In older versions of Windows (e.g. Windows 98) these files followed
|
||||
the name pattern `CP_#.NLS`, but newer versions use the name pattern `C_#.NLS`.
|
||||
|
||||
## Sources
|
||||
|
||||
- [Unicode Consortium Public Mappings](http://www.unicode.org/Public/MAPPINGS/)
|
||||
- [Code Page Enumeration](http://msdn.microsoft.com/en-us/library/cc195051.aspx)
|
||||
- [Code Page Identifiers](http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756.aspx)
|
||||
- [Windows Code Page Enumeration](http://msdn.microsoft.com/en-us/library/cc195051.aspx)
|
||||
- [Windows Code Page Identifiers](http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756.aspx)
|
||||
- [IBM Coded Character Sets](https://www-01.ibm.com/software/globalization/ccsid/ccsid_registered.html)
|
||||
|
||||
## Badges
|
||||
|
||||
|
@ -36,6 +36,7 @@ The fields of the pages.csv manifest are `codepage,url,bytes` (SBCS=1, DBCS=2)
|
||||
1256,http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1256.TXT,1
|
||||
1257,http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1257.TXT,1
|
||||
1258,http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1258.TXT,1
|
||||
47451,http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/ATARIST.TXT,1
|
||||
```
|
||||
|
||||
Note that the Windows rendering is used for the Mac code pages. The primary
|
||||
@ -165,9 +166,13 @@ The following codepages are available in .NET on Windows:
|
||||
```>pages.csv
|
||||
708,,1
|
||||
720,,1
|
||||
808,,1
|
||||
858,,1
|
||||
870,,1
|
||||
872,,1
|
||||
1010,,1
|
||||
1047,,1
|
||||
1132,,1
|
||||
1140,,1
|
||||
1141,,1
|
||||
1142,,1
|
||||
@ -259,8 +264,6 @@ The following codepages are dependencies for Visual FoxPro:
|
||||
895,,1
|
||||
```
|
||||
|
||||
The known missing codepages are enumerated in the README.
|
||||
|
||||
## Building Notes
|
||||
|
||||
The script `make.sh` (described later) will get these files and massage the data
|
||||
@ -469,6 +472,7 @@ describe('README', function() {
|
||||
assert.equal(cp10000_711, 255);
|
||||
|
||||
var b1 = [0xbb,0xe3,0xd7,0xdc];
|
||||
var s1 = b1.map(function(x) { return String.fromCharCode(x); }).join("");
|
||||
var = cptable.utils.decode(936, b1);
|
||||
var buf = cptable.utils.encode(936, );
|
||||
assert.equal(,"");
|
||||
@ -570,7 +574,7 @@ describe('entry conditions', function() {
|
||||
c(cp,i,'str');
|
||||
};
|
||||
describe('encode', function() {
|
||||
it('CP 1252 : sbcs', function() { chken(1252,"foobar"); });
|
||||
it('CP 1252 : sbcs', function() { chken(1252,"foobr"); });
|
||||
it('CP 708 : sbcs', function() { chken(708," and smiley faces");});
|
||||
it('CP 936 : dbcs', function() { chken(936, "");});
|
||||
});
|
||||
@ -616,6 +620,10 @@ function testfile(f,cp,type,skip) {
|
||||
z = cptable.utils.encode(cp, a);
|
||||
if(z.length != d.length) throw new Error(f + " " + JSON.stringify(z) + " != " + JSON.stringify(d) + " : " + z.length + " " + d.length);
|
||||
for(var i = 0; i != d.length; ++i) if(d[i] !== z[i]) throw new Error("" + i + " " + d[i] + "!=" + z[i]);
|
||||
if(f.indexOf("cptable.js") == -1) {
|
||||
cptable.utils.encode(cp, d, 'str');
|
||||
cptable.utils.encode(cp, d, 'arr');
|
||||
}
|
||||
}
|
||||
cptable.utils.cache.encache();
|
||||
chk(cp);
|
||||
@ -680,6 +688,12 @@ Object.keys(m).forEach(function(t){if(t != 16969) describe(m[t], function() {
|
||||
if(t != 65000) cmp(x,z);
|
||||
else { assert.equal(y, cptable.utils.decode(t, z)); }
|
||||
cptable.utils.cache.encache();
|
||||
cptable.utils.encode(t, y, 'str');
|
||||
cptable.utils.encode(t, y, 'arr');
|
||||
cptable.utils.cache.decache();
|
||||
cptable.utils.encode(t, y, 'str');
|
||||
cptable.utils.encode(t, y, 'arr');
|
||||
cptable.utils.cache.encache();
|
||||
}
|
||||
: null);
|
||||
it("should process README.md." + m[t], fs.existsSync('./misc/README.md.' + m[t]) ?
|
||||
@ -721,6 +735,11 @@ describe('failures', function() {
|
||||
it('should fail when presented with invalid char codes', function() {
|
||||
assert.throws(function(){cptable.utils.cache.decache(); return cptable.utils.encode(20127, [String.fromCharCode(0xAA)]);});
|
||||
});
|
||||
it('should fail to propagate UTF8 BOM in UTF7', function() {
|
||||
["+/v8-abc", "+/v9"].forEach(function(m) { assert.throws(function() {
|
||||
assert.equal(m, cptable.utils.encode(65000, cptable.utils.decode(65000, m)));
|
||||
}); });
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
@ -729,7 +748,7 @@ describe('failures', function() {
|
||||
```json>package.json
|
||||
{
|
||||
"name": "codepage",
|
||||
"version": "1.4.0",
|
||||
"version": "1.5.0",
|
||||
"author": "SheetJS",
|
||||
"description": "pure-JS library to handle codepages",
|
||||
"keywords": [ "codepage", "iconv", "convert", "strings" ],
|
||||
@ -748,6 +767,7 @@ describe('failures', function() {
|
||||
"dependencies": {
|
||||
"voc":"",
|
||||
"concat-stream":"",
|
||||
"exit-on-epipe":"",
|
||||
"commander":""
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -761,7 +781,7 @@ describe('failures', function() {
|
||||
},
|
||||
"config": {
|
||||
"blanket": {
|
||||
"pattern": "[cptable.js,cputils.js,cpexcel.js]"
|
||||
"pattern": "[cputils.js]"
|
||||
}
|
||||
},
|
||||
"bugs": { "url": "https://github.com/SheetJS/js-codepage/issues" },
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -36,6 +36,7 @@ The fields of the pages.csv manifest are +AGA-codepage,url,bytes+AGA (SBCS+AD0-1
|
||||
1256,http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1256.TXT,1
|
||||
1257,http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1257.TXT,1
|
||||
1258,http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1258.TXT,1
|
||||
47451,http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/ATARIST.TXT,1
|
||||
+AGAAYABg
|
||||
|
||||
Note that the Windows rendering is used for the Mac code pages. The primary
|
||||
@ -165,9 +166,13 @@ The following codepages are available in .NET on Windows:
|
||||
+AGAAYABgAD4-pages.csv
|
||||
708,,1
|
||||
720,,1
|
||||
808,,1
|
||||
858,,1
|
||||
870,,1
|
||||
872,,1
|
||||
1010,,1
|
||||
1047,,1
|
||||
1132,,1
|
||||
1140,,1
|
||||
1141,,1
|
||||
1142,,1
|
||||
@ -259,8 +264,6 @@ The following codepages are dependencies for Visual FoxPro:
|
||||
895,,1
|
||||
+AGAAYABg
|
||||
|
||||
The known missing codepages are enumerated in the README.
|
||||
|
||||
+ACMAIw Building Notes
|
||||
|
||||
The script +AGA-make.sh+AGA (described later) will get these files and massage the data
|
||||
@ -469,6 +472,7 @@ describe('README', function() +AHs
|
||||
assert.equal(cp10000+AF8-711, 255)+ADs
|
||||
|
||||
var b1 +AD0 +AFs-0xbb,0xe3,0xd7,0xdc+AF0AOw
|
||||
var s1 +AD0 b1.map(function(x) +AHs return String.fromCharCode(x)+ADs +AH0).join(+ACIAIg)+ADs
|
||||
var +bEdgOw +AD0 cptable.utils.decode(936, b1)+ADs
|
||||
var buf +AD0 cptable.utils.encode(936, +bEdgOw)+ADs
|
||||
assert.equal(+bEdgOw,+ACJsR2A7ACI)+ADs
|
||||
@ -570,7 +574,7 @@ describe('entry conditions', function() +AHs
|
||||
c(cp,i,'str')+ADs
|
||||
+AH0AOw
|
||||
describe('encode', function() +AHs
|
||||
it('CP 1252 : sbcs', function() +AHs chken(1252,+ACI-foobar+ACI)+ADs +AH0)+ADs
|
||||
it('CP 1252 : sbcs', function() +AHs chken(1252,+ACI-foo+ICI-b+AP4-r+ACI)+ADs +AH0)+ADs
|
||||
it('CP 708 : sbcs', function() +AHs chken(708,+ACIGKg and +Bis smiley faces+ACI)+ADsAfQ)+ADs
|
||||
it('CP 936 : dbcs', function() +AHs chken(936, +ACKP2WYvTi1lh1tXeyZtS4vVACI)+ADsAfQ)+ADs
|
||||
+AH0)+ADs
|
||||
@ -616,6 +620,10 @@ function testfile(f,cp,type,skip) +AHs
|
||||
z +AD0 cptable.utils.encode(cp, a)+ADs
|
||||
if(z.length +ACEAPQ d.length) throw new Error(f +- +ACI +ACI +- JSON.stringify(z) +- +ACI +ACEAPQ +ACI +- JSON.stringify(d) +- +ACI : +ACI +- z.length +- +ACI +ACI +- d.length)+ADs
|
||||
for(var i +AD0 0+ADs i +ACEAPQ d.length+ADs +-+-i) if(d+AFs-i+AF0 +ACEAPQA9 z+AFs-i+AF0) throw new Error(+ACIAIg +- i +- +ACI +ACI +- d+AFs-i+AF0 +- +ACIAIQA9ACI +- z+AFs-i+AF0)+ADs
|
||||
if(f.indexOf(+ACI-cptable.js+ACI) +AD0APQ -1) +AHs
|
||||
cptable.utils.encode(cp, d, 'str')+ADs
|
||||
cptable.utils.encode(cp, d, 'arr')+ADs
|
||||
+AH0
|
||||
+AH0
|
||||
cptable.utils.cache.encache()+ADs
|
||||
chk(cp)+ADs
|
||||
@ -680,6 +688,12 @@ Object.keys(m).forEach(function(t)+AHs-if(t +ACEAPQ 16969) describe(m+AFs-t+AF0,
|
||||
if(t +ACEAPQ 65000) cmp(x,z)+ADs
|
||||
else +AHs assert.equal(y, cptable.utils.decode(t, z))+ADs +AH0
|
||||
cptable.utils.cache.encache()+ADs
|
||||
cptable.utils.encode(t, y, 'str')+ADs
|
||||
cptable.utils.encode(t, y, 'arr')+ADs
|
||||
cptable.utils.cache.decache()+ADs
|
||||
cptable.utils.encode(t, y, 'str')+ADs
|
||||
cptable.utils.encode(t, y, 'arr')+ADs
|
||||
cptable.utils.cache.encache()+ADs
|
||||
+AH0
|
||||
: null)+ADs
|
||||
it(+ACI-should process README.md.+ACI +- m+AFs-t+AF0, fs.existsSync('./misc/README.md.' +- m+AFs-t+AF0) ?
|
||||
@ -721,6 +735,11 @@ describe('failures', function() +AHs
|
||||
it('should fail when presented with invalid char codes', function() +AHs
|
||||
assert.throws(function()+AHs-cptable.utils.cache.decache()+ADs return cptable.utils.encode(20127, +AFs-String.fromCharCode(0xAA)+AF0)+ADsAfQ)+ADs
|
||||
+AH0)+ADs
|
||||
it('should fail to propagate UTF8 BOM in UTF7', function() +AHs
|
||||
+AFsAIgAr-/v8-abc+ACI, +ACIAKw-/v9+ACIAXQ.forEach(function(m) +AHs assert.throws(function() +AHs
|
||||
assert.equal(m, cptable.utils.encode(65000, cptable.utils.decode(65000, m)))+ADs
|
||||
+AH0)+ADs +AH0)+ADs
|
||||
+AH0)+ADs
|
||||
+AH0)+ADs
|
||||
+AGAAYABg
|
||||
|
||||
@ -729,7 +748,7 @@ describe('failures', function() +AHs
|
||||
+AGAAYABg-json+AD4-package.json
|
||||
+AHs
|
||||
+ACI-name+ACI: +ACI-codepage+ACI,
|
||||
+ACI-version+ACI: +ACI-1.4.0+ACI,
|
||||
+ACI-version+ACI: +ACI-1.5.0+ACI,
|
||||
+ACI-author+ACI: +ACI-SheetJS+ACI,
|
||||
+ACI-description+ACI: +ACI-pure-JS library to handle codepages+ACI,
|
||||
+ACI-keywords+ACI: +AFs +ACI-codepage+ACI, +ACI-iconv+ACI, +ACI-convert+ACI, +ACI-strings+ACI +AF0,
|
||||
@ -748,6 +767,7 @@ describe('failures', function() +AHs
|
||||
+ACI-dependencies+ACI: +AHs
|
||||
+ACI-voc+ACI:+ACIAIg,
|
||||
+ACI-concat-stream+ACI:+ACIAIg,
|
||||
+ACI-exit-on-epipe+ACI:+ACIAIg,
|
||||
+ACI-commander+ACI:+ACIAIg
|
||||
+AH0,
|
||||
+ACI-devDependencies+ACI: +AHs
|
||||
@ -761,7 +781,7 @@ describe('failures', function() +AHs
|
||||
+AH0,
|
||||
+ACI-config+ACI: +AHs
|
||||
+ACI-blanket+ACI: +AHs
|
||||
+ACI-pattern+ACI: +ACIAWw-cptable.js,cputils.js,cpexcel.js+AF0AIg
|
||||
+ACI-pattern+ACI: +ACIAWw-cputils.js+AF0AIg
|
||||
+AH0
|
||||
+AH0,
|
||||
+ACI-bugs+ACI: +AHs +ACI-url+ACI: +ACI-https://github.com/SheetJS/js-codepage/issues+ACI +AH0,
|
||||
|
@ -36,6 +36,7 @@ The fields of the pages.csv manifest are `codepage,url,bytes` (SBCS=1, DBCS=2)
|
||||
1256,http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1256.TXT,1
|
||||
1257,http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1257.TXT,1
|
||||
1258,http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1258.TXT,1
|
||||
47451,http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/ATARIST.TXT,1
|
||||
```
|
||||
|
||||
Note that the Windows rendering is used for the Mac code pages. The primary
|
||||
@ -165,9 +166,13 @@ The following codepages are available in .NET on Windows:
|
||||
```>pages.csv
|
||||
708,,1
|
||||
720,,1
|
||||
808,,1
|
||||
858,,1
|
||||
870,,1
|
||||
872,,1
|
||||
1010,,1
|
||||
1047,,1
|
||||
1132,,1
|
||||
1140,,1
|
||||
1141,,1
|
||||
1142,,1
|
||||
@ -259,8 +264,6 @@ The following codepages are dependencies for Visual FoxPro:
|
||||
895,,1
|
||||
```
|
||||
|
||||
The known missing codepages are enumerated in the README.
|
||||
|
||||
## Building Notes
|
||||
|
||||
The script `make.sh` (described later) will get these files and massage the data
|
||||
@ -469,6 +472,7 @@ describe('README', function() {
|
||||
assert.equal(cp10000_711, 255);
|
||||
|
||||
var b1 = [0xbb,0xe3,0xd7,0xdc];
|
||||
var s1 = b1.map(function(x) { return String.fromCharCode(x); }).join("");
|
||||
var 汇总 = cptable.utils.decode(936, b1);
|
||||
var buf = cptable.utils.encode(936, 汇总);
|
||||
assert.equal(汇总,"汇总");
|
||||
@ -570,7 +574,7 @@ describe('entry conditions', function() {
|
||||
c(cp,i,'str');
|
||||
};
|
||||
describe('encode', function() {
|
||||
it('CP 1252 : sbcs', function() { chken(1252,"foobar"); });
|
||||
it('CP 1252 : sbcs', function() { chken(1252,"foo•bþr"); });
|
||||
it('CP 708 : sbcs', function() { chken(708,"ت and ث smiley faces");});
|
||||
it('CP 936 : dbcs', function() { chken(936, "这是中文字符测试");});
|
||||
});
|
||||
@ -616,6 +620,10 @@ function testfile(f,cp,type,skip) {
|
||||
z = cptable.utils.encode(cp, a);
|
||||
if(z.length != d.length) throw new Error(f + " " + JSON.stringify(z) + " != " + JSON.stringify(d) + " : " + z.length + " " + d.length);
|
||||
for(var i = 0; i != d.length; ++i) if(d[i] !== z[i]) throw new Error("" + i + " " + d[i] + "!=" + z[i]);
|
||||
if(f.indexOf("cptable.js") == -1) {
|
||||
cptable.utils.encode(cp, d, 'str');
|
||||
cptable.utils.encode(cp, d, 'arr');
|
||||
}
|
||||
}
|
||||
cptable.utils.cache.encache();
|
||||
chk(cp);
|
||||
@ -680,6 +688,12 @@ Object.keys(m).forEach(function(t){if(t != 16969) describe(m[t], function() {
|
||||
if(t != 65000) cmp(x,z);
|
||||
else { assert.equal(y, cptable.utils.decode(t, z)); }
|
||||
cptable.utils.cache.encache();
|
||||
cptable.utils.encode(t, y, 'str');
|
||||
cptable.utils.encode(t, y, 'arr');
|
||||
cptable.utils.cache.decache();
|
||||
cptable.utils.encode(t, y, 'str');
|
||||
cptable.utils.encode(t, y, 'arr');
|
||||
cptable.utils.cache.encache();
|
||||
}
|
||||
: null);
|
||||
it("should process README.md." + m[t], fs.existsSync('./misc/README.md.' + m[t]) ?
|
||||
@ -721,6 +735,11 @@ describe('failures', function() {
|
||||
it('should fail when presented with invalid char codes', function() {
|
||||
assert.throws(function(){cptable.utils.cache.decache(); return cptable.utils.encode(20127, [String.fromCharCode(0xAA)]);});
|
||||
});
|
||||
it('should fail to propagate UTF8 BOM in UTF7', function() {
|
||||
["+/v8-abc", "+/v9"].forEach(function(m) { assert.throws(function() {
|
||||
assert.equal(m, cptable.utils.encode(65000, cptable.utils.decode(65000, m)));
|
||||
}); });
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
@ -729,7 +748,7 @@ describe('failures', function() {
|
||||
```json>package.json
|
||||
{
|
||||
"name": "codepage",
|
||||
"version": "1.4.0",
|
||||
"version": "1.5.0",
|
||||
"author": "SheetJS",
|
||||
"description": "pure-JS library to handle codepages",
|
||||
"keywords": [ "codepage", "iconv", "convert", "strings" ],
|
||||
@ -748,6 +767,7 @@ describe('failures', function() {
|
||||
"dependencies": {
|
||||
"voc":"",
|
||||
"concat-stream":"",
|
||||
"exit-on-epipe":"",
|
||||
"commander":""
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -761,7 +781,7 @@ describe('failures', function() {
|
||||
},
|
||||
"config": {
|
||||
"blanket": {
|
||||
"pattern": "[cptable.js,cputils.js,cpexcel.js]"
|
||||
"pattern": "[cputils.js]"
|
||||
}
|
||||
},
|
||||
"bugs": { "url": "https://github.com/SheetJS/js-codepage/issues" },
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* cptable.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
||||
/*jshint -W100 */
|
||||
var cptable = {version:"1.4.0"};
|
||||
var cptable = {version:"1.5.0"};
|
||||
cptable[37] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a .<(+|&!$*);-/,%_>?`:#@'=\"abcdefghijklmnopqr~stuvwxyz^[]{ABCDEFGHI}JKLMNOPQR\\STUVWXYZ0123456789", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[437] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[500] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a [.<(+!&]$*);^-/,%_>?`:#@'=\"abcdefghijklmnopqr~stuvwxyz|{ABCDEFGHI}JKLMNOPQR\\STUVWXYZ0123456789", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
@ -810,6 +810,7 @@ cptable[1255] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006
|
||||
cptable[1256] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1257] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1258] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[47451] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[10000] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[10006] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[10007] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
@ -833,9 +834,13 @@ cptable[28605] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u000
|
||||
cptable[28606] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[708] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[720] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[808] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[858] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[870] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a [.<(+!&]$*);^-/|,%_>?`:#@'=\"abcdefghijklmnopqr~stuvwxyz{ABCDEFGHI}JKLMNOPQR\\STUVWXYZ0123456789", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[872] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1010] = (function(){ var d = "\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"$%&()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1047] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\n\b\u0018\u0019\u001c\u001d\u001e\u001f\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a .<(+|&!$*);^-/,%_>?`:#@'=\"abcdefghijklmnopqr~stuvwxyz[]{ABCDEFGHI}JKLMNOPQR\\STUVWXYZ0123456789", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1132] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1140] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a .<(+|&!$*);-/,%_>?`:#@'=\"abcdefghijklmnopqr~stuvwxyz^[]{ABCDEFGHI}JKLMNOPQR\\STUVWXYZ0123456789", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1141] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a {.<(+!&~$*);^-/[,%_>?`:#'=\"abcdefghijklmnopqrstuvwxyz@|ABCDEFGHIJKLMNOPQR}STUVWXYZ\\0123456789]", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1142] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a }#.<(+!&*);^-/$,%_>?`:'=\"@abcdefghijklmnopqr{[]stuvwxyz|ABCDEFGHIJKLMNOPQR~\\STUVWXYZ0123456789", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
/+ACo cptable.js (C) 2013-present SheetJS -- http://sheetjs.com +ACo-/
|
||||
/+ACo-jshint -W100 +ACo-/
|
||||
var cptable +AD0 +AHs-version:+ACI-1.4.0+ACIAfQA7
|
||||
var cptable +AD0 +AHs-version:+ACI-1.5.0+ACIAfQA7
|
||||
cptable+AFs-37+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AJwAXA-t+AIYAfwCXAI0AjgBc-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AJ0AhQBc-b+AIcAXA-u0018+AFw-u0019+AJIAjwBc-u001c+AFw-u001d+AFw-u001e+AFw-u001f+AIAAgQCCAIMAhABc-n+AFw-u0017+AFw-u001b+AIgAiQCKAIsAjABc-u0005+AFw-u0006+AFw-u0007+AJAAkQBc-u0016+AJMAlACVAJYAXA-u0004+AJgAmQCaAJsAXA-u0014+AFw-u0015+AJ4AXA-u001a +AKAA4gDkAOAA4QDjAOUA5wDxAKI.+ADw(+-+AHwAJgDpAOoA6wDoAO0A7gDvAOwA3wAhACQAKg)+ADsArA--/+AMIAxADAAMEAwwDFAMcA0QCm,+ACUAXwA+?+APgAyQDKAMsAyADNAM4AzwDMAGA:+ACMAQA'+AD0AXAAiANg-abcdefghi+AKsAuwDwAP0A/gCxALA-jklmnopqr+AKoAugDmALgAxgCkALUAfg-stuvwxyz+AKEAvwDQAN0A3gCuAF4AowClALcAqQCnALYAvAC9AL4AWwBdAK8AqAC0ANcAew-ABCDEFGHI+AK0A9AD2APIA8wD1AH0-JKLMNOPQR+ALkA+wD8APkA+gD/AFwAXAD3-STUVWXYZ+ALIA1ADWANIA0wDV-0123456789+ALMA2wDcANkA2gCfACI, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-437+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AFw-u0004+AFw-u0005+AFw-u0006+AFw-u0007+AFw-b+AFw-t+AFw-n+AFw-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AFw-u0014+AFw-u0015+AFw-u0016+AFw-u0017+AFw-u0018+AFw-u0019+AFw-u001a+AFw-u001b+AFw-u001c+AFw-u001d+AFw-u001e+AFw-u001f +ACEAXAAiACMAJAAlACY'()+ACoAKw,-./0123456789:+ADsAPAA9AD4?+AEA-ABCDEFGHIJKLMNOPQRSTUVWXYZ+AFsAXABcAF0AXgBfAGA-abcdefghijklmnopqrstuvwxyz+AHsAfAB9AH4AfwDHAPwA6QDiAOQA4ADlAOcA6gDrAOgA7wDuAOwAxADFAMkA5gDGAPQA9gDyAPsA+QD/ANYA3ACiAKMApSCnAZIA4QDtAPMA+gDxANEAqgC6AL8jEACsAL0AvAChAKsAuyWRJZIlkyUCJSQlYSViJVYlVSVjJVElVyVdJVwlWyUQJRQlNCUsJRwlACU8JV4lXyVaJVQlaSVmJWAlUCVsJWclaCVkJWUlWSVYJVIlUyVrJWolGCUMJYglhCWMJZAlgAOxAN8DkwPAA6MDwwC1A8QDpgOYA6kDtCIeA8YDtSIpImEAsSJlImQjICMhAPciSACwIhkAtyIaIH8AsiWgAKAAIg, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-500+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AJwAXA-t+AIYAfwCXAI0AjgBc-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AJ0AhQBc-b+AIcAXA-u0018+AFw-u0019+AJIAjwBc-u001c+AFw-u001d+AFw-u001e+AFw-u001f+AIAAgQCCAIMAhABc-n+AFw-u0017+AFw-u001b+AIgAiQCKAIsAjABc-u0005+AFw-u0006+AFw-u0007+AJAAkQBc-u0016+AJMAlACVAJYAXA-u0004+AJgAmQCaAJsAXA-u0014+AFw-u0015+AJ4AXA-u001a +AKAA4gDkAOAA4QDjAOUA5wDxAFs.+ADw(+-+ACEAJgDpAOoA6wDoAO0A7gDvAOwA3wBdACQAKg)+ADsAXg--/+AMIAxADAAMEAwwDFAMcA0QCm,+ACUAXwA+?+APgAyQDKAMsAyADNAM4AzwDMAGA:+ACMAQA'+AD0AXAAiANg-abcdefghi+AKsAuwDwAP0A/gCxALA-jklmnopqr+AKoAugDmALgAxgCkALUAfg-stuvwxyz+AKEAvwDQAN0A3gCuAKIAowClALcAqQCnALYAvAC9AL4ArAB8AK8AqAC0ANcAew-ABCDEFGHI+AK0A9AD2APIA8wD1AH0-JKLMNOPQR+ALkA+wD8APkA+gD/AFwAXAD3-STUVWXYZ+ALIA1ADWANIA0wDV-0123456789+ALMA2wDcANkA2gCfACI, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
@ -810,6 +810,7 @@ cptable+AFs-1255+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw
|
||||
cptable+AFs-1256+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AFw-u0004+AFw-u0005+AFw-u0006+AFw-u0007+AFw-b+AFw-t+AFw-n+AFw-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AFw-u0014+AFw-u0015+AFw-u0016+AFw-u0017+AFw-u0018+AFw-u0019+AFw-u001a+AFw-u001b+AFw-u001c+AFw-u001d+AFw-u001e+AFw-u001f +ACEAXAAiACMAJAAlACY'()+ACoAKw,-./0123456789:+ADsAPAA9AD4?+AEA-ABCDEFGHIJKLMNOPQRSTUVWXYZ+AFsAXABcAF0AXgBfAGA-abcdefghijklmnopqrstuvwxyz+AHsAfAB9AH4AfyCsBn4gGgGSIB4gJiAgICECxiAwBnkgOQFSBoYGmAaIBq8gGCAZIBwgHSAiIBMgFAapISIGkSA6AVMgDCANBroAoAYMAKIAowCkAKUApgCnAKgAqQa+AKsArACtAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5BhsAuwC8AL0AvgYfBsEGIQYiBiMGJAYlBiYGJwYoBikGKgYrBiwGLQYuBi8GMAYxBjIGMwY0BjUGNgDXBjcGOAY5BjoGQAZBBkIGQwDgBkQA4gZFBkYGRwZIAOcA6ADpAOoA6wZJBkoA7gDvBksGTAZNBk4A9AZPBlAA9wZRAPkGUgD7APwgDiAPBtIAIg, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-1257+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AFw-u0004+AFw-u0005+AFw-u0006+AFw-u0007+AFw-b+AFw-t+AFw-n+AFw-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AFw-u0014+AFw-u0015+AFw-u0016+AFw-u0017+AFw-u0018+AFw-u0019+AFw-u001a+AFw-u001b+AFw-u001c+AFw-u001d+AFw-u001e+AFw-u001f +ACEAXAAiACMAJAAlACY'()+ACoAKw,-./0123456789:+ADsAPAA9AD4?+AEA-ABCDEFGHIJKLMNOPQRSTUVWXYZ+AFsAXABcAF0AXgBfAGA-abcdefghijklmnopqrstuvwxyz+AHsAfAB9AH4AfyCs//0gGv/9IB4gJiAgICH//SAw//0gOf/9AKgCxwC4//0gGCAZIBwgHSAiIBMgFP/9ISL//SA6//0ArwLb//0AoP/9AKIAowCk//0ApgCnANgAqQFWAKsArACtAK4AxgCwALEAsgCzALQAtQC2ALcA+AC5AVcAuwC8AL0AvgDmAQQBLgEAAQYAxADFARgBEgEMAMkBeQEWASIBNgEqATsBYAFDAUUA0wFMANUA1gDXAXIBQQFaAWoA3AF7AX0A3wEFAS8BAQEHAOQA5QEZARMBDQDpAXoBFwEjATcBKwE8AWEBRAFGAPMBTQD1APYA9wFzAUIBWwFrAPwBfAF+AtkAIg, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-1258+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AFw-u0004+AFw-u0005+AFw-u0006+AFw-u0007+AFw-b+AFw-t+AFw-n+AFw-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AFw-u0014+AFw-u0015+AFw-u0016+AFw-u0017+AFw-u0018+AFw-u0019+AFw-u001a+AFw-u001b+AFw-u001c+AFw-u001d+AFw-u001e+AFw-u001f +ACEAXAAiACMAJAAlACY'()+ACoAKw,-./0123456789:+ADsAPAA9AD4?+AEA-ABCDEFGHIJKLMNOPQRSTUVWXYZ+AFsAXABcAF0AXgBfAGA-abcdefghijklmnopqrstuvwxyz+AHsAfAB9AH4AfyCs//0gGgGSIB4gJiAgICECxiAw//0gOQFS//3//f/9//0gGCAZIBwgHSAiIBMgFALcISL//SA6AVP//f/9AXgAoAChAKIAowCkAKUApgCnAKgAqQCqAKsArACtAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAQIAxADFAMYAxwDIAMkAygDLAwAAzQDOAM8BEADRAwkA0wDUAaAA1gDXANgA2QDaANsA3AGvAwMA3wDgAOEA4gEDAOQA5QDmAOcA6ADpAOoA6wMBAO0A7gDvAREA8QMjAPMA9AGhAPYA9wD4APkA+gD7APwBsCCrAP8AIg, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-47451+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AFw-u0004+AFw-u0005+AFw-u0006+AFw-u0007+AFw-b+AFw-t+AFw-n+AFw-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AFw-u0014+AFw-u0015+AFw-u0016+AFw-u0017+AFw-u0018+AFw-u0019+AFw-u001a+AFw-u001b+AFw-u001c+AFw-u001d+AFw-u001e+AFw-u001f +ACEAXAAiACMAJAAlACY'()+ACoAKw,-./0123456789:+ADsAPAA9AD4?+AEA-ABCDEFGHIJKLMNOPQRSTUVWXYZ+AFsAXABcAF0AXgBfAGA-abcdefghijklmnopqrstuvwxyz+AHsAfAB9AH4AfwDHAPwA6QDiAOQA4ADlAOcA6gDrAOgA7wDuAOwAxADFAMkA5gDGAPQA9gDyAPsA+QD/ANYA3ACiAKMApQDfAZIA4QDtAPMA+gDxANEAqgC6AL8jEACsAL0AvAChAKsAuwDjAPUA2AD4AVMBUgDAAMMA1QCoALQgIAC2AKkAriEiATMBMgXQBdEF0gXTBdQF1QXWBdcF2AXZBdsF3AXeBeAF4QXiBeQF5gXnBegF6QXqBd8F2gXdBeMF5QCnIiciHgOxA7IDkwPAA6MDwwC1A8QDpgOYA6kDtCIuA8YiCCIpImEAsSJlImQjICMhAPciSACwIhkAtyIaIH8AsgCzAK8AIg, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-10000+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AFw-u0004+AFw-u0005+AFw-u0006+AFw-u0007+AFw-b+AFw-t+AFw-n+AFw-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AFw-u0014+AFw-u0015+AFw-u0016+AFw-u0017+AFw-u0018+AFw-u0019+AFw-u001a+AFw-u001b+AFw-u001c+AFw-u001d+AFw-u001e+AFw-u001f +ACEAXAAiACMAJAAlACY'()+ACoAKw,-./0123456789:+ADsAPAA9AD4?+AEA-ABCDEFGHIJKLMNOPQRSTUVWXYZ+AFsAXABcAF0AXgBfAGA-abcdefghijklmnopqrstuvwxyz+AHsAfAB9AH4AfwDEAMUAxwDJANEA1gDcAOEA4ADiAOQA4wDlAOcA6QDoAOoA6wDtAOwA7gDvAPEA8wDyAPQA9gD1APoA+QD7APwgIACwAKIAowCnICIAtgDfAK4AqSEiALQAqCJgAMYA2CIeALEiZCJlAKUAtSICIhEiDwPAIisAqgC6ISYA5gD4AL8AoQCsIhoBkiJIIgYAqwC7ICYAoADAAMMA1QFSAVMgEyAUIBwgHSAYIBkA9yXKAP8BeCBEAKQgOSA6+wH7AiAhALcgGiAeIDAAwgDKAMEAywDIAM0AzgDPAMwA0wDU//0A0gDaANsA2QExAsYC3ACvAtgC2QLaALgC3QLbAscAIg, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-10006+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AFw-u0004+AFw-u0005+AFw-u0006+AFw-u0007+AFw-b+AFw-t+AFw-n+AFw-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AFw-u0014+AFw-u0015+AFw-u0016+AFw-u0017+AFw-u0018+AFw-u0019+AFw-u001a+AFw-u001b+AFw-u001c+AFw-u001d+AFw-u001e+AFw-u001f +ACEAXAAiACMAJAAlACY'()+ACoAKw,-./0123456789:+ADsAPAA9AD4?+AEA-ABCDEFGHIJKLMNOPQRSTUVWXYZ+AFsAXABcAF0AXgBfAGA-abcdefghijklmnopqrstuvwxyz+AHsAfAB9AH4AfwDEALkAsgDJALMA1gDcA4UA4ADiAOQDhACoAOcA6QDoAOoA6wCjISIA7gDvICIAvSAwAPQA9gCmAK0A+QD7APwgIAOTA5QDmAObA54DoADfAK4AqQOjA6oApyJgALADhwORALEiZCJlAKUDkgOVA5YDlwOZA5oDnAOmA6sDqAOpA6wDnQCsA58DoSJIA6QAqwC7ICYAoAOlA6cDhgOIAVMgEyAVIBwgHSAYIBkA9wOJA4oDjAOOA60DrgOvA8wDjwPNA7EDsgPIA7QDtQPGA7MDtwO5A74DugO7A7wDvQO/A8ADzgPBA8MDxAO4A8kDwgPHA8UDtgPKA8sDkAOw//0AIg, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-10007+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AFw-u0004+AFw-u0005+AFw-u0006+AFw-u0007+AFw-b+AFw-t+AFw-n+AFw-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AFw-u0014+AFw-u0015+AFw-u0016+AFw-u0017+AFw-u0018+AFw-u0019+AFw-u001a+AFw-u001b+AFw-u001c+AFw-u001d+AFw-u001e+AFw-u001f +ACEAXAAiACMAJAAlACY'()+ACoAKw,-./0123456789:+ADsAPAA9AD4?+AEA-ABCDEFGHIJKLMNOPQRSTUVWXYZ+AFsAXABcAF0AXgBfAGA-abcdefghijklmnopqrstuvwxyz+AHsAfAB9AH4AfwQQBBEEEgQTBBQEFQQWBBcEGAQZBBoEGwQcBB0EHgQfBCAEIQQiBCMEJAQlBCYEJwQoBCkEKgQrBCwELQQuBC8gIACwAKIAowCnICIAtgQGAK4AqSEiBAIEUiJgBAMEUyIeALEiZCJlBFYAtSICBAgEBARUBAcEVwQJBFkECgRaBFgEBQCsIhoBkiJIIgYAqwC7ICYAoAQLBFsEDARcBFUgEyAUIBwgHSAYIBkA9yAeBA4EXgQPBF8hFgQBBFEETwQwBDEEMgQzBDQENQQ2BDcEOAQ5BDoEOwQ8BD0EPgQ/BEAEQQRCBEMERARFBEYERwRIBEkESgRLBEwETQROAKQAIg, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
@ -833,9 +834,13 @@ cptable+AFs-28605+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AF
|
||||
cptable+AFs-28606+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AFw-u0004+AFw-u0005+AFw-u0006+AFw-u0007+AFw-b+AFw-t+AFw-n+AFw-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AFw-u0014+AFw-u0015+AFw-u0016+AFw-u0017+AFw-u0018+AFw-u0019+AFw-u001a+AFw-u001b+AFw-u001c+AFw-u001d+AFw-u001e+AFw-u001f +ACEAXAAiACMAJAAlACY'()+ACoAKw,-./0123456789:+ADsAPAA9AD4?+AEA-ABCDEFGHIJKLMNOPQRSTUVWXYZ+AFsAXABcAF0AXgBfAGA-abcdefghijklmnopqrstuvwxyz+AHsAfAB9AH4AfwCAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAEEAQUBQSCsIB4BYACnAWEAqQIYAKsBeQCtAXoBewCwALEBDAFCAX0gHQC2ALcBfgENAhkAuwFSAVMBeAF8AMAAwQDCAQIAxAEGAMYAxwDIAMkAygDLAMwAzQDOAM8BEAFDANIA0wDUAVAA1gFaAXAA2QDaANsA3AEYAhoA3wDgAOEA4gEDAOQBBwDmAOcA6ADpAOoA6wDsAO0A7gDvAREBRADyAPMA9AFRAPYBWwFxAPkA+gD7APwBGQIbAP8AIg, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-708+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AFw-u0004+AFw-u0005+AFw-u0006+AFw-u0007+AFw-b+AFw-t+AFw-n+AFw-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AFw-u0014+AFw-u0015+AFw-u0016+AFw-u0017+AFw-u0018+AFw-u0019+AFw-u001a+AFw-u001b+AFw-u001c+AFw-u001d+AFw-u001e+AFw-u001f +ACEAXAAiACMAJAAlACY'()+ACoAKw,-./0123456789:+ADsAPAA9AD4?+AEA-ABCDEFGHIJKLMNOPQRSTUVWXYZ+AFsAXABcAF0AXgBfAGA-abcdefghijklmnopqrstuvwxyz+AHsAfAB9AH4AfyUCJSQA6QDiJWEA4CViAOcA6gDrAOgA7wDuJVYlVSVjJVElVyVdAPQlXCVbAPsA+SUQJRQAmgCbAJwAnQCeAJ/4wSU0JSwlHACkJQAlPCVeJV8lWiVUJWkGDCVmAKsAuyWRJZIlkyVgJVAlbCVnJWglZCVlJVkGGyVYJVIlUwYfJWsGIQYiBiMGJAYlBiYGJwYoBikGKgYrBiwGLQYuBi8GMAYxBjIGMwY0BjUGNgY3BjgGOQY6JYglhCWMJZAlgAZABkEGQgZDBkQGRQZGBkcGSAZJBkoGSwZMBk0GTgZPBlAGUQZS+ML4w/jE+MX4xvjHJWolGCUMALUAoyWgAKAAIg, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-720+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AFw-u0004+AFw-u0005+AFw-u0006+AFw-u0007+AFw-b+AFw-t+AFw-n+AFw-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AFw-u0014+AFw-u0015+AFw-u0016+AFw-u0017+AFw-u0018+AFw-u0019+AFw-u001a+AFw-u001b+AFw-u001c+AFw-u001d+AFw-u001e+AFw-u001f +ACEAXAAiACMAJAAlACY'()+ACoAKw,-./0123456789:+ADsAPAA9AD4?+AEA-ABCDEFGHIJKLMNOPQRSTUVWXYZ+AFsAXABcAF0AXgBfAGA-abcdefghijklmnopqrstuvwxyz+AHsAfAB9AH4AfwCAAIEA6QDiAIQA4ACGAOcA6gDrAOgA7wDuAI0AjgCPAJAGUQZSAPQApAZAAPsA+QYhBiIGIwYkAKMGJQYmBicGKAYpBioGKwYsBi0GLgYvBjAGMQYyBjMGNAY1AKsAuyWRJZIlkyUCJSQlYSViJVYlVSVjJVElVyVdJVwlWyUQJRQlNCUsJRwlACU8JV4lXyVaJVQlaSVmJWAlUCVsJWclaCVkJWUlWSVYJVIlUyVrJWolGCUMJYglhCWMJZAlgAY2BjcGOAY5BjoGQQC1BkIGQwZEBkUGRgZHBkgGSQZKImEGSwZMBk0GTgZPBlAiSACwIhkAtyIaIH8AsiWgAKAAIg, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-808+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AFw-u0004+AFw-u0005+AFw-u0006+AFw-u0007+AFw-b+AFw-t+AFw-n+AFw-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AFw-u0014+AFw-u0015+AFw-u0016+AFw-u0017+AFw-u0018+AFw-u0019+AFw-u001a+AFw-u001b+AFw-u001c+AFw-u001d+AFw-u001e+AFw-u001f +ACEAXAAiACMAJAAlACY'()+ACoAKw,-./0123456789:+ADsAPAA9AD4?+AEA-ABCDEFGHIJKLMNOPQRSTUVWXYZ+AFsAXABcAF0AXgBfAGA-abcdefghijklmnopqrstuvwxyz+AHsAfAB9AH4AfwQQBBEEEgQTBBQEFQQWBBcEGAQZBBoEGwQcBB0EHgQfBCAEIQQiBCMEJAQlBCYEJwQoBCkEKgQrBCwELQQuBC8EMAQxBDIEMwQ0BDUENgQ3BDgEOQQ6BDsEPAQ9BD4EPyWRJZIlkyUCJSQlYSViJVYlVSVjJVElVyVdJVwlWyUQJRQlNCUsJRwlACU8JV4lXyVaJVQlaSVmJWAlUCVsJWclaCVkJWUlWSVYJVIlUyVrJWolGCUMJYglhCWMJZAlgARABEEEQgRDBEQERQRGBEcESARJBEoESwRMBE0ETgRPBAEEUQQEBFQEBwRXBA4EXgCwIhkAtyIaIRYgrCWgAKAAIg, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-858+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AFw-u0004+AFw-u0005+AFw-u0006+AFw-u0007+AFw-b+AFw-t+AFw-n+AFw-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AFw-u0014+AFw-u0015+AFw-u0016+AFw-u0017+AFw-u0018+AFw-u0019+AFw-u001a+AFw-u001b+AFw-u001c+AFw-u001d+AFw-u001e+AFw-u001f +ACEAXAAiACMAJAAlACY'()+ACoAKw,-./0123456789:+ADsAPAA9AD4?+AEA-ABCDEFGHIJKLMNOPQRSTUVWXYZ+AFsAXABcAF0AXgBfAGA-abcdefghijklmnopqrstuvwxyz+AHsAfAB9AH4AfwDHAPwA6QDiAOQA4ADlAOcA6gDrAOgA7wDuAOwAxADFAMkA5gDGAPQA9gDyAPsA+QD/ANYA3AD4AKMA2ADXAZIA4QDtAPMA+gDxANEAqgC6AL8ArgCsAL0AvAChAKsAuyWRJZIlkyUCJSQAwQDCAMAAqSVjJVElVyVdAKIApSUQJRQlNCUsJRwlACU8AOMAwyVaJVQlaSVmJWAlUCVsAKQA8ADQAMoAywDIIKwAzQDOAM8lGCUMJYglhACmAMwlgADTAN8A1ADSAPUA1QC1AP4A3gDaANsA2QD9AN0ArwC0AK0AsSAXAL4AtgCnAPcAuACwAKgAtwC5ALMAsiWgAKAAIg, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-870+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AJwAXA-t+AIYAfwCXAI0AjgBc-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AJ0AhQBc-b+AIcAXA-u0018+AFw-u0019+AJIAjwBc-u001c+AFw-u001d+AFw-u001e+AFw-u001f+AIAAgQCCAIMAhABc-n+AFw-u0017+AFw-u001b+AIgAiQCKAIsAjABc-u0005+AFw-u0006+AFw-u0007+AJAAkQBc-u0016+AJMAlACVAJYAXA-u0004+AJgAmQCaAJsAXA-u0014+AFw-u0015+AJ4AXA-u001a +AKAA4gDkAWMA4QEDAQ0A5wEHAFs.+ADw(+-+ACEAJgDpARkA6wFvAO0A7gE+AToA3wBdACQAKg)+ADsAXg--/+AMIAxALdAMEBAgEMAMcBBgB8,+ACUAXwA+?+AscAyQEYAMsBbgDNAM4BPQE5AGA:+ACMAQA'+AD0AXAAiAtg-abcdefghi+AVsBSAERAP0BWQFfALA-jklmnopqr+AUIBRAFhALgC2wCkAQUAfg-stuvwxyz+AVoBRwEQAN0BWAFeAtkBBAF8AWIBewCnAX4BegF9AXkBQQFDAWAAqAC0ANcAew-ABCDEFGHI+AK0A9AD2AVUA8wFRAH0-JKLMNOPQR+ARoBcQD8AWUA+gEbAFwAXAD3-STUVWXYZ+AQ8A1ADWAVQA0wFQ-0123456789+AQ4BcADcAWQA2gCfACI, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-872+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AFw-u0004+AFw-u0005+AFw-u0006+AFw-u0007+AFw-b+AFw-t+AFw-n+AFw-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AFw-u0014+AFw-u0015+AFw-u0016+AFw-u0017+AFw-u0018+AFw-u0019+AFw-u001a+AFw-u001b+AFw-u001c+AFw-u001d+AFw-u001e+AFw-u001f +ACEAXAAiACMAJAAlACY'()+ACoAKw,-./0123456789:+ADsAPAA9AD4?+AEA-ABCDEFGHIJKLMNOPQRSTUVWXYZ+AFsAXABcAF0AXgBfAGA-abcdefghijklmnopqrstuvwxyz+AHsAfAB9AH4AfwRSBAIEUwQDBFEEAQRUBAQEVQQFBFYEBgRXBAcEWAQIBFkECQRaBAoEWwQLBFwEDAReBA4EXwQPBE4ELgRKBCoEMAQQBDEEEQRGBCYENAQUBDUEFQREBCQEMwQTAKsAuyWRJZIlkyUCJSQERQQlBDgEGCVjJVElVyVdBDkEGSUQJRQlNCUsJRwlACU8BDoEGiVaJVQlaSVmJWAlUCVsIKwEOwQbBDwEHAQ9BB0EPgQeBD8lGCUMJYglhAQfBE8lgAQvBEAEIARBBCEEQgQiBEMEIwQ2BBYEMgQSBEwELCEWAK0ESwQrBDcEFwRIBCgETQQtBEkEKQRHBCcApyWgAKAAIg, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-1010+AF0 +AD0 (function()+AHs var d +AD0 +ACL//QBc-u0001+AFw-u0002+AFw-u0003+AFw-u0004+AFw-u0005+AFw-u0006+AFw-u0007+AFw-b+AFw-t+AFw-n+AFw-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AFw-u0014+AFw-u0015+AFw-u0016+AFw-u0017+AFw-u0018+AFw-u0019+AFw-u001a+AFw-u001b+AFw-u001c+AFw-u001d+AFw-u001e+AFw-u001f +ACEAXAAiAKMAJAAlACYgGQ()+ACoAKw,-./0123456789:+ADsAPAA9AD4?+AOA-ABCDEFGHIJKLMNOPQRSTUVWXYZ+ALAA5wCnAsYAXwC1-abcdefghijklmnopqrstuvwxyz+AOkA+QDoAKj//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//0AIg, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-1047+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AJwAXA-t+AIYAfwCXAI0AjgBc-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AJ0AXA-n+AFw-b+AIcAXA-u0018+AFw-u0019+AJIAjwBc-u001c+AFw-u001d+AFw-u001e+AFw-u001f+AIAAgQCCAIMAhACFAFw-u0017+AFw-u001b+AIgAiQCKAIsAjABc-u0005+AFw-u0006+AFw-u0007+AJAAkQBc-u0016+AJMAlACVAJYAXA-u0004+AJgAmQCaAJsAXA-u0014+AFw-u0015+AJ4AXA-u001a +AKAA4gDkAOAA4QDjAOUA5wDxAKI.+ADw(+-+AHwAJgDpAOoA6wDoAO0A7gDvAOwA3wAhACQAKg)+ADsAXg--/+AMIAxADAAMEAwwDFAMcA0QCm,+ACUAXwA+?+APgAyQDKAMsAyADNAM4AzwDMAGA:+ACMAQA'+AD0AXAAiANg-abcdefghi+AKsAuwDwAP0A/gCxALA-jklmnopqr+AKoAugDmALgAxgCkALUAfg-stuvwxyz+AKEAvwDQAFsA3gCuAKwAowClALcAqQCnALYAvAC9AL4A3QCoAK8AXQC0ANcAew-ABCDEFGHI+AK0A9AD2APIA8wD1AH0-JKLMNOPQR+ALkA+wD8APkA+gD/AFwAXAD3-STUVWXYZ+ALIA1ADWANIA0wDV-0123456789+ALMA2wDcANkA2gCfACI, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-1132+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AFw-u0004+AFw-u0005+AFw-u0006+AFw-u0007+AFw-b+AFw-t+AFw-n+AFw-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AFw-u0014+AFw-u0015+AFw-u0016+AFw-u0017+AFw-u0018+AFw-u0019+AFw-u001a+AFw-u001b+AFw-u001c+AFw-u001d+AFw-u001e+AFw-u001f +ACEAXAAiACMAJAAlACY'()+ACoAKw,-./0123456789:+ADsAPAA9AD4?+AEA-ABCDEFGHIJKLMNOPQRSTUVWXYZ+AFsAXABcAF0AXgBfAGA-abcdefghijklmnopqrstuvwxyz+AHsAfAB9AH4Af//9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//Q6BDoIOhA6HDogOqg6KDo0OlA6VDpYOlw6ZDpoOmw6cDp0Ong6fDqEOog6jDqUOpw6rDq0Orv/9//3//Q6vDrAOsg6zDrQOtQ62DrcOuA65DrwOsQ67Dr3//f/9//0OwA7BDsIOww7EDsgOyQ7KDssOzA7NDsb//Q7cDt0grf/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9DtAO0Q7SDtMO1A7VDtYO1w7YDtn//f/9AKIArACmAKAAIg, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-1140+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AJwAXA-t+AIYAfwCXAI0AjgBc-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AJ0AhQBc-b+AIcAXA-u0018+AFw-u0019+AJIAjwBc-u001c+AFw-u001d+AFw-u001e+AFw-u001f+AIAAgQCCAIMAhABc-n+AFw-u0017+AFw-u001b+AIgAiQCKAIsAjABc-u0005+AFw-u0006+AFw-u0007+AJAAkQBc-u0016+AJMAlACVAJYAXA-u0004+AJgAmQCaAJsAXA-u0014+AFw-u0015+AJ4AXA-u001a +AKAA4gDkAOAA4QDjAOUA5wDxAKI.+ADw(+-+AHwAJgDpAOoA6wDoAO0A7gDvAOwA3wAhACQAKg)+ADsArA--/+AMIAxADAAMEAwwDFAMcA0QCm,+ACUAXwA+?+APgAyQDKAMsAyADNAM4AzwDMAGA:+ACMAQA'+AD0AXAAiANg-abcdefghi+AKsAuwDwAP0A/gCxALA-jklmnopqr+AKoAugDmALgAxiCsALUAfg-stuvwxyz+AKEAvwDQAN0A3gCuAF4AowClALcAqQCnALYAvAC9AL4AWwBdAK8AqAC0ANcAew-ABCDEFGHI+AK0A9AD2APIA8wD1AH0-JKLMNOPQR+ALkA+wD8APkA+gD/AFwAXAD3-STUVWXYZ+ALIA1ADWANIA0wDV-0123456789+ALMA2wDcANkA2gCfACI, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-1141+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AJwAXA-t+AIYAfwCXAI0AjgBc-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AJ0AhQBc-b+AIcAXA-u0018+AFw-u0019+AJIAjwBc-u001c+AFw-u001d+AFw-u001e+AFw-u001f+AIAAgQCCAIMAhABc-n+AFw-u0017+AFw-u001b+AIgAiQCKAIsAjABc-u0005+AFw-u0006+AFw-u0007+AJAAkQBc-u0016+AJMAlACVAJYAXA-u0004+AJgAmQCaAJsAXA-u0014+AFw-u0015+AJ4AXA-u001a +AKAA4gB7AOAA4QDjAOUA5wDxAMQ.+ADw(+-+ACEAJgDpAOoA6wDoAO0A7gDvAOwAfgDcACQAKg)+ADsAXg--/+AMIAWwDAAMEAwwDFAMcA0QD2,+ACUAXwA+?+APgAyQDKAMsAyADNAM4AzwDMAGA:+ACMApw'+AD0AXAAiANg-abcdefghi+AKsAuwDwAP0A/gCxALA-jklmnopqr+AKoAugDmALgAxiCsALUA3w-stuvwxyz+AKEAvwDQAN0A3gCuAKIAowClALcAqQBAALYAvAC9AL4ArAB8AK8AqAC0ANcA5A-ABCDEFGHI+AK0A9ACmAPIA8wD1APw-JKLMNOPQR+ALkA+wB9APkA+gD/ANYA9w-STUVWXYZ+ALIA1ABcAFwA0gDTANU-0123456789+ALMA2wBdANkA2gCfACI, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
cptable+AFs-1142+AF0 +AD0 (function()+AHs var d +AD0 +ACIAXA-u0000+AFw-u0001+AFw-u0002+AFw-u0003+AJwAXA-t+AIYAfwCXAI0AjgBc-u000b+AFw-f+AFw-r+AFw-u000e+AFw-u000f+AFw-u0010+AFw-u0011+AFw-u0012+AFw-u0013+AJ0AhQBc-b+AIcAXA-u0018+AFw-u0019+AJIAjwBc-u001c+AFw-u001d+AFw-u001e+AFw-u001f+AIAAgQCCAIMAhABc-n+AFw-u0017+AFw-u001b+AIgAiQCKAIsAjABc-u0005+AFw-u0006+AFw-u0007+AJAAkQBc-u0016+AJMAlACVAJYAXA-u0004+AJgAmQCaAJsAXA-u0014+AFw-u0015+AJ4AXA-u001a +AKAA4gDkAOAA4QDjAH0A5wDxACM.+ADw(+-+ACEAJgDpAOoA6wDoAO0A7gDvAOwA3yCsAMUAKg)+ADsAXg--/+AMIAxADAAMEAwwAkAMcA0QD4,+ACUAXwA+?+AKYAyQDKAMsAyADNAM4AzwDMAGA:+AMYA2A'+AD0AXAAiAEA-abcdefghi+AKsAuwDwAP0A/gCxALA-jklmnopqr+AKoAugB7ALgAWwBdALUA/A-stuvwxyz+AKEAvwDQAN0A3gCuAKIAowClALcAqQCnALYAvAC9AL4ArAB8AK8AqAC0ANcA5g-ABCDEFGHI+AK0A9AD2APIA8wD1AOU-JKLMNOPQR+ALkA+wB+APkA+gD/AFwAXAD3-STUVWXYZ+ALIA1ADWANIA0wDV-0123456789+ALMA2wDcANkA2gCfACI, D +AD0 +AFsAXQ, e +AD0 +AHsAfQA7 for(var i+AD0-0+ADs-i+ACEAPQ-d.length+ADsAKwAr-i) +AHs if(d.charCodeAt(i) +ACEAPQA9 0xFFFD) e+AFs-d+AFs-i+AF0AXQ +AD0 i+ADs D+AFs-i+AF0 +AD0 d.charAt(i)+ADs +AH0 return +AHsAIg-enc+ACI: e, +ACI-dec+ACI: D +AH0AOw +AH0)()+ADs
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* cptable.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
||||
/*jshint -W100 */
|
||||
var cptable = {version:"1.4.0"};
|
||||
var cptable = {version:"1.5.0"};
|
||||
cptable[37] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ¢.<(+|&éêëèíîïìß!$*);¬-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ¤µ~stuvwxyz¡¿ÐÝÞ®^£¥·©§¶¼½¾[]¯¨´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[437] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[500] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ[.<(+!&éêëèíîïìß]$*);^-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ¤µ~stuvwxyz¡¿ÐÝÞ®¢£¥·©§¶¼½¾¬|¯¨´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
@ -810,6 +810,7 @@ cptable[1255] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006
|
||||
cptable[1256] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œں ،¢£¤¥¦§¨©ھ«¬®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûüے", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1257] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚<EFBFBD>„…†‡<E280A0>‰<EFBFBD>‹<EFBFBD>¨ˇ¸<CB87>‘’“”•–—<E28093>™<EFBFBD>›<EFBFBD>¯˛<C2AF> <EFBFBD>¢£¤<C2A3>¦§Ø©Ŗ«¬®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1258] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰<CB86>‹Œ<E280B9><C592><EFBFBD><EFBFBD>‘’“”•–—˜™<CB9C>›œ<E280BA><C593>Ÿ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[47451] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥ßƒáíóúñѪº¿⌐¬½¼¡«»ãõØøœŒÀÃÕ¨´†¶©®™ijIJאבגדהוזחטיכלמנסעפצקרשתןךםףץ§∧∞αβΓπΣσµτΦΘΩδ∮φ∈∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²³¯", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[10000] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ<C393>ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[10006] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ<CE90>", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[10007] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
@ -833,9 +834,13 @@ cptable[28605] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u000
|
||||
cptable[28606] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~
ĄąŁ€„Š§š©Ș«ŹźŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[708] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~│┤éâ╡à╢çêëèïî╖╕╣║╗╝ô╜╛ûù┐└┴┬├¤─┼╞╟╚╔╩،╦«»░▒▓╠═╬╧╨╤╥╙؛╘╒╓؟╫ءآأؤإئابةتثجحخدذرزسشصضطظعغ█▄▌▐▀ـفقكلمنهوىيًٌٍَُِّْ╪┘┌µ£■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[720] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~éâàçêëèïîّْô¤ـûùءآأؤ£إئابةتثجحخدذرزسشص«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ضطظعغفµقكلمنهوىي≡ًٌٍَُِ≈°∙·√ⁿ²■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[808] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[858] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´±‗¾¶§÷¸°¨·¹³²■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[870] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäţáăčçć[.<(+!&éęëůíîľĺß]$*);^-/ÂÄ˝ÁĂČÇĆ|,%_>?ˇÉĘËŮÍÎĽĹ`:#@'=\"˘abcdefghiśňđýřş°jklmnopqrłńš¸˛¤ą~stuvwxyzŚŇĐÝŘŞ˙ĄżŢŻ§žźŽŹŁŃŠ¨´×{ABCDEFGHIôöŕóő}JKLMNOPQRĚűüťúě\\÷STUVWXYZďÔÖŔÓŐ0123456789ĎŰÜŤÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[872] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬€лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№ыЫзЗшШэЭщЩчЧ§■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1010] = (function(){ var d = "<22>\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"£$%&’()*+,-./0123456789:;<=>?àABCDEFGHIJKLMNOPQRSTUVWXYZ°ç§ˆ_µabcdefghijklmnopqrstuvwxyzéùè¨<C3A8><C2A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1047] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\n\b\u0018\u0019\u001c\u001d\u001e\u001f
\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ¢.<(+|&éêëèíîïìß!$*);^-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ¤µ~stuvwxyz¡¿Ð[Þ®¬£¥·©§¶¼½¾Ý¨¯]´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1132] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ<E0BAAD><E0BAAE><EFBFBD>ຯະາຳິີຶືຸູຼັົຽ<E0BABB><E0BABD><EFBFBD>ເແໂໃໄ່້໊໋໌ໍໆ<E0BB8D>ໜໝ₭<E0BB9D><E282AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>໐໑໒໓໔໕໖໗໘໙<E0BB98><E0BB99>¢¬¦ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1140] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ¢.<(+|&éêëèíîïìß!$*);¬-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ€µ~stuvwxyz¡¿ÐÝÞ®^£¥·©§¶¼½¾[]¯¨´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1141] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a â{àáãåçñÄ.<(+!&éêëèíîïì~Ü$*);^-/Â[ÀÁÃÅÇÑö,%_>?øÉÊËÈÍÎÏÌ`:#§'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ€µßstuvwxyz¡¿ÐÝÞ®¢£¥·©@¶¼½¾¬|¯¨´×äABCDEFGHIô¦òóõüJKLMNOPQR¹û}ùúÿÖ÷STUVWXYZ²Ô\\ÒÓÕ0123456789³Û]ÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1142] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáã}çñ#.<(+!&éêëèíîïì߀Å*);^-/ÂÄÀÁÃ$ÇÑø,%_>?¦ÉÊËÈÍÎÏÌ`:ÆØ'=\"@abcdefghi«»ðýþ±°jklmnopqrªº{¸[]µüstuvwxyz¡¿ÐÝÞ®¢£¥·©§¶¼½¾¬|¯¨´×æABCDEFGHIôöòóõåJKLMNOPQR¹û~ùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* cputils.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ft=javascript: */
|
||||
/*jshint newcap: false */
|
||||
(function(root, factory){
|
||||
(function(root, factory) {
|
||||
"use strict";
|
||||
if(typeof cptable === "undefined") {
|
||||
if(typeof require !== "undefined"){
|
||||
@ -27,11 +28,11 @@
|
||||
var magic_cache = [65001];
|
||||
var magic_decode = {};
|
||||
var magic_encode = {};
|
||||
var cpecache = {};
|
||||
var cpdcache = {};
|
||||
var cpecache = {};
|
||||
|
||||
var sfcc = function sfcc(x) { return String.fromCharCode(x); };
|
||||
var cca = function cca(x){ return x.charCodeAt(0); };
|
||||
var cca = function cca(x) { return x.charCodeAt(0); };
|
||||
|
||||
var has_buf = (typeof Buffer !== 'undefined');
|
||||
if(has_buf) {
|
||||
@ -50,12 +51,12 @@
|
||||
var EE = make_EE(cpt[cp].enc);
|
||||
return function sbcs_e(data, ofmt) {
|
||||
var len = data.length;
|
||||
var out, i, j, D, w;
|
||||
var out, i=0, j=0, D=0, w=0;
|
||||
if(typeof data === 'string') {
|
||||
out = Buffer(len);
|
||||
out = new Buffer(len);
|
||||
for(i = 0; i < len; ++i) out[i] = EE[data.charCodeAt(i)];
|
||||
} else if(Buffer.isBuffer(data)) {
|
||||
out = Buffer(2*len);
|
||||
out = new Buffer(2*len);
|
||||
j = 0;
|
||||
for(i = 0; i < len; ++i) {
|
||||
D = data[i];
|
||||
@ -70,24 +71,24 @@
|
||||
}
|
||||
out = out.slice(0,j);
|
||||
} else {
|
||||
out = Buffer(len);
|
||||
out = new Buffer(len);
|
||||
for(i = 0; i < len; ++i) out[i] = EE[data[i].charCodeAt(0)];
|
||||
}
|
||||
if(ofmt === undefined || ofmt === 'buf') return out;
|
||||
if(!ofmt || ofmt === 'buf') return out;
|
||||
if(ofmt !== 'arr') return out.toString('binary');
|
||||
return [].slice.call(out);
|
||||
};
|
||||
};
|
||||
var sbcs_decode = function make_sbcs_decode(cp) {
|
||||
var D = cpt[cp].dec;
|
||||
var DD = new Buffer(131072), d=0, c;
|
||||
var DD = new Buffer(131072), d=0, c="";
|
||||
for(d=0;d<D.length;++d) {
|
||||
if(!(c=D[d])) continue;
|
||||
var w = c.charCodeAt(0);
|
||||
DD[2*d] = w&255; DD[2*d+1] = w>>8;
|
||||
}
|
||||
return function sbcs_d(data) {
|
||||
var len = data.length, i=0, j;
|
||||
var len = data.length, i=0, j=0;
|
||||
if(2 * len > mdl) { mdl = 2 * len; mdb = new Buffer(mdl); }
|
||||
if(Buffer.isBuffer(data)) {
|
||||
for(i = 0; i < len; i++) {
|
||||
@ -119,7 +120,7 @@
|
||||
EE[2*f] = E[e] & 255; EE[2*f+1] = E[e]>>8;
|
||||
}
|
||||
return function dbcs_e(data, ofmt) {
|
||||
var len = data.length, out = new Buffer(2*len), i, j, jj, k, D;
|
||||
var len = data.length, out = new Buffer(2*len), i=0, j=0, jj=0, k=0, D=0;
|
||||
if(typeof data === 'string') {
|
||||
for(i = k = 0; i < len; ++i) {
|
||||
j = data.charCodeAt(i)*2;
|
||||
@ -146,7 +147,7 @@
|
||||
out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];
|
||||
}
|
||||
}
|
||||
if(ofmt === undefined || ofmt === 'buf') return out;
|
||||
if(!ofmt || ofmt === 'buf') return out;
|
||||
if(ofmt !== 'arr') return out.toString('binary');
|
||||
return [].slice.call(out);
|
||||
};
|
||||
@ -162,7 +163,7 @@
|
||||
DD[j] = w&255; DD[j+1] = w>>8;
|
||||
}
|
||||
return function dbcs_d(data) {
|
||||
var len = data.length, out = new Buffer(2*len), i, j, k=0;
|
||||
var len = data.length, out = new Buffer(2*len), i=0, j=0, k=0;
|
||||
if(Buffer.isBuffer(data)) {
|
||||
for(i = 0; i < len; i++) {
|
||||
j = 2*data[i];
|
||||
@ -186,6 +187,7 @@
|
||||
};
|
||||
};
|
||||
magic_decode[65001] = function utf8_d(data) {
|
||||
if(typeof data === "string") return utf8_d(data.split("").map(cca));
|
||||
var len = data.length, w = 0, ww = 0;
|
||||
if(4 * len > mdl) { mdl = 4 * len; mdb = new Buffer(mdl); }
|
||||
var i = 0;
|
||||
@ -205,6 +207,11 @@
|
||||
return mdb.slice(0,k).toString('ucs2');
|
||||
};
|
||||
magic_encode[65001] = function utf8_e(data, ofmt) {
|
||||
if(has_buf && Buffer.isBuffer(data)) {
|
||||
if(!ofmt || ofmt === 'buf') return data;
|
||||
if(ofmt !== 'arr') return data.toString('binary');
|
||||
return [].slice.call(data);
|
||||
}
|
||||
var len = data.length, w = 0, ww = 0, j = 0;
|
||||
var direct = typeof data === "string";
|
||||
if(4 * len > mdl) { mdl = 4 * len; mdb = new Buffer(mdl); }
|
||||
@ -227,7 +234,7 @@
|
||||
mdb[j++] = 128 + (w&63);
|
||||
}
|
||||
}
|
||||
if(ofmt === undefined || ofmt === 'buf') return mdb.slice(0,j);
|
||||
if(!ofmt || ofmt === 'buf') return mdb.slice(0,j);
|
||||
if(ofmt !== 'arr') return mdb.slice(0,j).toString('binary');
|
||||
return [].slice.call(mdb, 0, j);
|
||||
};
|
||||
@ -236,7 +243,7 @@
|
||||
var encache = function encache() {
|
||||
if(has_buf) {
|
||||
if(cpdcache[sbcs_cache[0]]) return;
|
||||
var i, s;
|
||||
var i=0, s=0;
|
||||
for(i = 0; i < sbcs_cache.length; ++i) {
|
||||
s = sbcs_cache[i];
|
||||
if(cpt[s]) {
|
||||
@ -258,7 +265,8 @@
|
||||
}
|
||||
}
|
||||
};
|
||||
var cp_decache = function cp_decache(cp) { cpdcache[cp] = cpecache[cp] = undefined; };
|
||||
var null_enc = function(data, ofmt) { return ""; };
|
||||
var cp_decache = function cp_decache(cp) { delete cpdcache[cp]; delete cpecache[cp]; };
|
||||
var decache = function decache() {
|
||||
if(has_buf) {
|
||||
if(!cpdcache[sbcs_cache[0]]) return;
|
||||
@ -266,7 +274,7 @@
|
||||
dbcs_cache.forEach(cp_decache);
|
||||
magic_cache.forEach(cp_decache);
|
||||
}
|
||||
last_enc = last_cp = undefined;
|
||||
last_enc = null_enc; last_cp = 0;
|
||||
};
|
||||
var cache = {
|
||||
encache: encache,
|
||||
@ -279,21 +287,20 @@
|
||||
|
||||
var BM = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
var SetD = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?";
|
||||
var last_enc, last_cp;
|
||||
var last_enc = null_enc, last_cp = 0;
|
||||
var encode = function encode(cp, data, ofmt) {
|
||||
if(cp === last_cp) { return last_enc(data, ofmt); }
|
||||
if(cpecache[cp] !== undefined) { last_enc = cpecache[last_cp=cp]; return last_enc(data, ofmt); }
|
||||
if(cp === last_cp && last_enc) { return last_enc(data, ofmt); }
|
||||
if(cpecache[cp]) { last_enc = cpecache[last_cp=cp]; return last_enc(data, ofmt); }
|
||||
if(has_buf && Buffer.isBuffer(data)) data = data.toString('utf8');
|
||||
var len = data.length;
|
||||
var out = has_buf ? new Buffer(4*len) : [], w, i, j = 0, c, tt, ww;
|
||||
var C = cpt[cp], E, M;
|
||||
var out = has_buf ? new Buffer(4*len) : [], w=0, i=0, j = 0, ww=0;
|
||||
var C = cpt[cp], E, M = "";
|
||||
if(C && (E=C.enc)) for(i = 0; i < len; ++i, ++j) {
|
||||
w = E[data[i]];
|
||||
out[j] = w&255;
|
||||
if(w > 255) {
|
||||
out[j] = w>>8;
|
||||
out[++j] = w&255;
|
||||
}
|
||||
} else out[j] = w&255;
|
||||
}
|
||||
else if((M=magic[cp])) switch(M) {
|
||||
case "utf8":
|
||||
@ -358,16 +365,16 @@
|
||||
out[j+3] = w&255; w >>= 8;
|
||||
out[j+2] = w&255; w >>= 8;
|
||||
out[j+1] = w&255; w >>= 8;
|
||||
out[j] = w&255; w >>= 8;
|
||||
out[j] = w&255;
|
||||
j+=4;
|
||||
}
|
||||
break;
|
||||
case "utf7":
|
||||
for(i = 0; i < len; i++) {
|
||||
c = data[i];
|
||||
var c = data[i];
|
||||
if(c === "+") { out[j++] = 0x2b; out[j++] = 0x2d; continue; }
|
||||
if(SetD.indexOf(c) > -1) { out[j++] = c.charCodeAt(0); continue; }
|
||||
tt = encode(1201, c);
|
||||
var tt = encode(1201, c);
|
||||
out[j++] = 0x2b;
|
||||
out[j++] = BM.charCodeAt(tt[0]>>2);
|
||||
out[j++] = BM.charCodeAt(((tt[0]&0x03)<<4) + ((tt[1]||0)>>4));
|
||||
@ -379,31 +386,30 @@
|
||||
}
|
||||
else throw new Error("Unrecognized CP: " + cp);
|
||||
out = out.slice(0,j);
|
||||
if(typeof Buffer === 'undefined') return (ofmt == 'str') ? out.map(sfcc).join("") : out;
|
||||
if(ofmt === undefined || ofmt === 'buf') return out;
|
||||
if(!has_buf) return (ofmt == 'str') ? (out).map(sfcc).join("") : out;
|
||||
if(!ofmt || ofmt === 'buf') return out;
|
||||
if(ofmt !== 'arr') return out.toString('binary');
|
||||
return [].slice.call(out);
|
||||
};
|
||||
var decode = function decode(cp, data) {
|
||||
var F; if((F=cpdcache[cp])) return F(data);
|
||||
var len = data.length, out = new Array(len), w, i, j = 1, k = 0, ww;
|
||||
var C = cpt[cp], D, M;
|
||||
if(typeof data === "string") return decode(cp, data.split("").map(cca));
|
||||
var len = data.length, out = new Array(len), s="", w=0, i=0, j=1, k=0, ww=0;
|
||||
var C = cpt[cp], D, M="";
|
||||
if(C && (D=C.dec)) {
|
||||
if(typeof data === "string") data = data.split("").map(cca);
|
||||
for(i = 0; i < len; i+=j) {
|
||||
j = 2;
|
||||
w = D[(data[i]<<8)+ data[i+1]];
|
||||
if(!w) {
|
||||
s = D[(data[i]<<8)+ data[i+1]];
|
||||
if(!s) {
|
||||
j = 1;
|
||||
w = D[data[i]];
|
||||
s = D[data[i]];
|
||||
}
|
||||
if(!w) throw new Error('Unrecognized code: ' + data[i] + ' ' + data[i+j-1] + ' ' + i + ' ' + j + ' ' + D[data[i]]);
|
||||
out[k++] = w;
|
||||
if(!s) throw new Error('Unrecognized code: ' + data[i] + ' ' + data[i+j-1] + ' ' + i + ' ' + j + ' ' + D[data[i]]);
|
||||
out[k++] = s;
|
||||
}
|
||||
}
|
||||
else if((M=magic[cp])) switch(M) {
|
||||
case "utf8":
|
||||
i = 0;
|
||||
if(len >= 3 && data[0] == 0xEF) if(data[1] == 0xBB && data[2] == 0xBF) i = 3;
|
||||
for(; i < len; i+=j) {
|
||||
j = 1;
|
||||
@ -423,24 +429,21 @@
|
||||
for(i = 0; i < len; i++) out[i] = String.fromCharCode(data[i]);
|
||||
k = len; break;
|
||||
case "utf16le":
|
||||
i = 0;
|
||||
if(len >= 2 && data[0] == 0xFF) if(data[1] == 0xFE) i = 2;
|
||||
if(has_buf && Buffer.isBuffer(data)) return data.toString(M);
|
||||
j = 2;
|
||||
for(; i < len; i+=j) {
|
||||
for(; i+1 < len; i+=j) {
|
||||
out[k++] = String.fromCharCode((data[i+1]<<8) + data[i]);
|
||||
}
|
||||
break;
|
||||
case "utf16be":
|
||||
i = 0;
|
||||
if(len >= 2 && data[0] == 0xFE) if(data[1] == 0xFF) i = 2;
|
||||
j = 2;
|
||||
for(; i < len; i+=j) {
|
||||
for(; i+1 < len; i+=j) {
|
||||
out[k++] = String.fromCharCode((data[i]<<8) + data[i+1]);
|
||||
}
|
||||
break;
|
||||
case "utf32le":
|
||||
i = 0;
|
||||
if(len >= 4 && data[0] == 0xFF) if(data[1] == 0xFE && data[2] === 0 && data[3] === 0) i = 4;
|
||||
j = 4;
|
||||
for(; i < len; i+=j) {
|
||||
@ -454,7 +457,6 @@
|
||||
}
|
||||
break;
|
||||
case "utf32be":
|
||||
i = 0;
|
||||
if(len >= 4 && data[3] == 0xFF) if(data[2] == 0xFE && data[1] === 0 && data[0] === 0) i = 4;
|
||||
j = 4;
|
||||
for(; i < len; i+=j) {
|
||||
@ -468,7 +470,6 @@
|
||||
}
|
||||
break;
|
||||
case "utf7":
|
||||
i = 0;
|
||||
if(len >= 4 && data[0] == 0x2B && data[1] == 0x2F && data[2] == 0x76) {
|
||||
if(len >= 5 && data[3] == 0x38 && data[4] == 0x2D) i = 5;
|
||||
else if(data[3] == 0x38 || data[3] == 0x39 || data[3] == 0x2B || data[3] == 0x2F) i = 4;
|
||||
@ -481,9 +482,9 @@
|
||||
var dash = 0;
|
||||
if(data[i+j] === 0x2d) { ++j; dash=1; }
|
||||
var tt = [];
|
||||
var o64;
|
||||
var c1, c2, c3;
|
||||
var e1, e2, e3, e4;
|
||||
var o64 = "";
|
||||
var c1=0, c2=0, c3=0;
|
||||
var e1=0, e2=0, e3=0, e4=0;
|
||||
for(var l = 1; l < j - dash;) {
|
||||
e1 = BM.indexOf(String.fromCharCode(data[i+l++]));
|
||||
e2 = BM.indexOf(String.fromCharCode(data[i+l++]));
|
||||
@ -498,9 +499,8 @@
|
||||
c3 = (e3 & 3) << 6 | e4;
|
||||
if(e4 < 64) tt.push(c3);
|
||||
}
|
||||
if((tt.length & 1) === 1) tt.length--;
|
||||
o64 = decode(1201, tt);
|
||||
for(l = 0; l < o64.length; ++l) out[k++] = o64[l];
|
||||
for(l = 0; l < o64.length; ++l) out[k++] = o64.charAt(l);
|
||||
}
|
||||
break;
|
||||
default: throw new Error("Unsupported magic: " + cp + " " + magic[cp]);
|
||||
@ -508,7 +508,7 @@
|
||||
else throw new Error("Unrecognized CP: " + cp);
|
||||
return out.slice(0,k).join("");
|
||||
};
|
||||
var hascp = function hascp(cp) { return cpt[cp] || magic[cp]; };
|
||||
var hascp = function hascp(cp) { return !!(cpt[cp] || magic[cp]); };
|
||||
cpt.utils = { decode: decode, encode: encode, hascp: hascp, magic: magic, cache:cache };
|
||||
return cpt;
|
||||
}));
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,6 +1,7 @@
|
||||
/+ACo cputils.js (C) 2013-present SheetJS -- http://sheetjs.com +ACo-/
|
||||
/+ACo vim: set ft+AD0-javascript: +ACo-/
|
||||
/+ACo-jshint newcap: false +ACo-/
|
||||
(function(root, factory)+AHs
|
||||
(function(root, factory) +AHs
|
||||
+ACI-use strict+ACIAOw
|
||||
if(typeof cptable +AD0APQA9 +ACI-undefined+ACI) +AHs
|
||||
if(typeof require +ACEAPQA9 +ACI-undefined+ACI)+AHs
|
||||
@ -27,11 +28,11 @@
|
||||
var magic+AF8-cache +AD0 +AFs-65001+AF0AOw
|
||||
var magic+AF8-decode +AD0 +AHsAfQA7
|
||||
var magic+AF8-encode +AD0 +AHsAfQA7
|
||||
var cpecache +AD0 +AHsAfQA7
|
||||
var cpdcache +AD0 +AHsAfQA7
|
||||
var cpecache +AD0 +AHsAfQA7
|
||||
|
||||
var sfcc +AD0 function sfcc(x) +AHs return String.fromCharCode(x)+ADs +AH0AOw
|
||||
var cca +AD0 function cca(x)+AHs return x.charCodeAt(0)+ADs +AH0AOw
|
||||
var cca +AD0 function cca(x) +AHs return x.charCodeAt(0)+ADs +AH0AOw
|
||||
|
||||
var has+AF8-buf +AD0 (typeof Buffer +ACEAPQA9 'undefined')+ADs
|
||||
if(has+AF8-buf) +AHs
|
||||
@ -50,12 +51,12 @@
|
||||
var EE +AD0 make+AF8-EE(cpt+AFs-cp+AF0.enc)+ADs
|
||||
return function sbcs+AF8-e(data, ofmt) +AHs
|
||||
var len +AD0 data.length+ADs
|
||||
var out, i, j, D, w+ADs
|
||||
var out, i+AD0-0, j+AD0-0, D+AD0-0, w+AD0-0+ADs
|
||||
if(typeof data +AD0APQA9 'string') +AHs
|
||||
out +AD0 Buffer(len)+ADs
|
||||
out +AD0 new Buffer(len)+ADs
|
||||
for(i +AD0 0+ADs i +ADw len+ADs +-+-i) out+AFs-i+AF0 +AD0 EE+AFs-data.charCodeAt(i)+AF0AOw
|
||||
+AH0 else if(Buffer.isBuffer(data)) +AHs
|
||||
out +AD0 Buffer(2+ACo-len)+ADs
|
||||
out +AD0 new Buffer(2+ACo-len)+ADs
|
||||
j +AD0 0+ADs
|
||||
for(i +AD0 0+ADs i +ADw len+ADs +-+-i) +AHs
|
||||
D +AD0 data+AFs-i+AF0AOw
|
||||
@ -70,24 +71,24 @@
|
||||
+AH0
|
||||
out +AD0 out.slice(0,j)+ADs
|
||||
+AH0 else +AHs
|
||||
out +AD0 Buffer(len)+ADs
|
||||
out +AD0 new Buffer(len)+ADs
|
||||
for(i +AD0 0+ADs i +ADw len+ADs +-+-i) out+AFs-i+AF0 +AD0 EE+AFs-data+AFs-i+AF0.charCodeAt(0)+AF0AOw
|
||||
+AH0
|
||||
if(ofmt +AD0APQA9 undefined +AHwAfA ofmt +AD0APQA9 'buf') return out+ADs
|
||||
if(+ACE-ofmt +AHwAfA ofmt +AD0APQA9 'buf') return out+ADs
|
||||
if(ofmt +ACEAPQA9 'arr') return out.toString('binary')+ADs
|
||||
return +AFsAXQ.slice.call(out)+ADs
|
||||
+AH0AOw
|
||||
+AH0AOw
|
||||
var sbcs+AF8-decode +AD0 function make+AF8-sbcs+AF8-decode(cp) +AHs
|
||||
var D +AD0 cpt+AFs-cp+AF0.dec+ADs
|
||||
var DD +AD0 new Buffer(131072), d+AD0-0, c+ADs
|
||||
var DD +AD0 new Buffer(131072), d+AD0-0, c+AD0AIgAiADs
|
||||
for(d+AD0-0+ADs-d+ADw-D.length+ADsAKwAr-d) +AHs
|
||||
if(+ACE(c+AD0-D+AFs-d+AF0)) continue+ADs
|
||||
var w +AD0 c.charCodeAt(0)+ADs
|
||||
DD+AFs-2+ACo-d+AF0 +AD0 w+ACY-255+ADs DD+AFs-2+ACo-d+-1+AF0 +AD0 w+AD4APg-8+ADs
|
||||
+AH0
|
||||
return function sbcs+AF8-d(data) +AHs
|
||||
var len +AD0 data.length, i+AD0-0, j+ADs
|
||||
var len +AD0 data.length, i+AD0-0, j+AD0-0+ADs
|
||||
if(2 +ACo len +AD4 mdl) +AHs mdl +AD0 2 +ACo len+ADs mdb +AD0 new Buffer(mdl)+ADs +AH0
|
||||
if(Buffer.isBuffer(data)) +AHs
|
||||
for(i +AD0 0+ADs i +ADw len+ADs i+-+-) +AHs
|
||||
@ -119,7 +120,7 @@
|
||||
EE+AFs-2+ACo-f+AF0 +AD0 E+AFs-e+AF0 +ACY 255+ADs EE+AFs-2+ACo-f+-1+AF0 +AD0 E+AFs-e+AF0APgA+-8+ADs
|
||||
+AH0
|
||||
return function dbcs+AF8-e(data, ofmt) +AHs
|
||||
var len +AD0 data.length, out +AD0 new Buffer(2+ACo-len), i, j, jj, k, D+ADs
|
||||
var len +AD0 data.length, out +AD0 new Buffer(2+ACo-len), i+AD0-0, j+AD0-0, jj+AD0-0, k+AD0-0, D+AD0-0+ADs
|
||||
if(typeof data +AD0APQA9 'string') +AHs
|
||||
for(i +AD0 k +AD0 0+ADs i +ADw len+ADs +-+-i) +AHs
|
||||
j +AD0 data.charCodeAt(i)+ACo-2+ADs
|
||||
@ -146,7 +147,7 @@
|
||||
out+AFs-k+-+-+AF0 +AD0 EE+AFs-j+-1+AF0 +AHwAfA EE+AFs-j+AF0AOw if(EE+AFs-j+-1+AF0 +AD4 0) out+AFs-k+-+-+AF0 +AD0 EE+AFs-j+AF0AOw
|
||||
+AH0
|
||||
+AH0
|
||||
if(ofmt +AD0APQA9 undefined +AHwAfA ofmt +AD0APQA9 'buf') return out+ADs
|
||||
if(+ACE-ofmt +AHwAfA ofmt +AD0APQA9 'buf') return out+ADs
|
||||
if(ofmt +ACEAPQA9 'arr') return out.toString('binary')+ADs
|
||||
return +AFsAXQ.slice.call(out)+ADs
|
||||
+AH0AOw
|
||||
@ -162,7 +163,7 @@
|
||||
DD+AFs-j+AF0 +AD0 w+ACY-255+ADs DD+AFs-j+-1+AF0 +AD0 w+AD4APg-8+ADs
|
||||
+AH0
|
||||
return function dbcs+AF8-d(data) +AHs
|
||||
var len +AD0 data.length, out +AD0 new Buffer(2+ACo-len), i, j, k+AD0-0+ADs
|
||||
var len +AD0 data.length, out +AD0 new Buffer(2+ACo-len), i+AD0-0, j+AD0-0, k+AD0-0+ADs
|
||||
if(Buffer.isBuffer(data)) +AHs
|
||||
for(i +AD0 0+ADs i +ADw len+ADs i+-+-) +AHs
|
||||
j +AD0 2+ACo-data+AFs-i+AF0AOw
|
||||
@ -186,6 +187,7 @@
|
||||
+AH0AOw
|
||||
+AH0AOw
|
||||
magic+AF8-decode+AFs-65001+AF0 +AD0 function utf8+AF8-d(data) +AHs
|
||||
if(typeof data +AD0APQA9 +ACI-string+ACI) return utf8+AF8-d(data.split(+ACIAIg).map(cca))+ADs
|
||||
var len +AD0 data.length, w +AD0 0, ww +AD0 0+ADs
|
||||
if(4 +ACo len +AD4 mdl) +AHs mdl +AD0 4 +ACo len+ADs mdb +AD0 new Buffer(mdl)+ADs +AH0
|
||||
var i +AD0 0+ADs
|
||||
@ -205,6 +207,11 @@
|
||||
return mdb.slice(0,k).toString('ucs2')+ADs
|
||||
+AH0AOw
|
||||
magic+AF8-encode+AFs-65001+AF0 +AD0 function utf8+AF8-e(data, ofmt) +AHs
|
||||
if(has+AF8-buf +ACYAJg Buffer.isBuffer(data)) +AHs
|
||||
if(+ACE-ofmt +AHwAfA ofmt +AD0APQA9 'buf') return data+ADs
|
||||
if(ofmt +ACEAPQA9 'arr') return data.toString('binary')+ADs
|
||||
return +AFsAXQ.slice.call(data)+ADs
|
||||
+AH0
|
||||
var len +AD0 data.length, w +AD0 0, ww +AD0 0, j +AD0 0+ADs
|
||||
var direct +AD0 typeof data +AD0APQA9 +ACI-string+ACIAOw
|
||||
if(4 +ACo len +AD4 mdl) +AHs mdl +AD0 4 +ACo len+ADs mdb +AD0 new Buffer(mdl)+ADs +AH0
|
||||
@ -227,7 +234,7 @@
|
||||
mdb+AFs-j+-+-+AF0 +AD0 128 +- (w+ACY-63)+ADs
|
||||
+AH0
|
||||
+AH0
|
||||
if(ofmt +AD0APQA9 undefined +AHwAfA ofmt +AD0APQA9 'buf') return mdb.slice(0,j)+ADs
|
||||
if(+ACE-ofmt +AHwAfA ofmt +AD0APQA9 'buf') return mdb.slice(0,j)+ADs
|
||||
if(ofmt +ACEAPQA9 'arr') return mdb.slice(0,j).toString('binary')+ADs
|
||||
return +AFsAXQ.slice.call(mdb, 0, j)+ADs
|
||||
+AH0AOw
|
||||
@ -236,7 +243,7 @@
|
||||
var encache +AD0 function encache() +AHs
|
||||
if(has+AF8-buf) +AHs
|
||||
if(cpdcache+AFs-sbcs+AF8-cache+AFs-0+AF0AXQ) return+ADs
|
||||
var i, s+ADs
|
||||
var i+AD0-0, s+AD0-0+ADs
|
||||
for(i +AD0 0+ADs i +ADw sbcs+AF8-cache.length+ADs +-+-i) +AHs
|
||||
s +AD0 sbcs+AF8-cache+AFs-i+AF0AOw
|
||||
if(cpt+AFs-s+AF0) +AHs
|
||||
@ -258,7 +265,8 @@
|
||||
+AH0
|
||||
+AH0
|
||||
+AH0AOw
|
||||
var cp+AF8-decache +AD0 function cp+AF8-decache(cp) +AHs cpdcache+AFs-cp+AF0 +AD0 cpecache+AFs-cp+AF0 +AD0 undefined+ADs +AH0AOw
|
||||
var null+AF8-enc +AD0 function(data, ofmt) +AHs return +ACIAIgA7 +AH0AOw
|
||||
var cp+AF8-decache +AD0 function cp+AF8-decache(cp) +AHs delete cpdcache+AFs-cp+AF0AOw delete cpecache+AFs-cp+AF0AOw +AH0AOw
|
||||
var decache +AD0 function decache() +AHs
|
||||
if(has+AF8-buf) +AHs
|
||||
if(+ACE-cpdcache+AFs-sbcs+AF8-cache+AFs-0+AF0AXQ) return+ADs
|
||||
@ -266,7 +274,7 @@
|
||||
dbcs+AF8-cache.forEach(cp+AF8-decache)+ADs
|
||||
magic+AF8-cache.forEach(cp+AF8-decache)+ADs
|
||||
+AH0
|
||||
last+AF8-enc +AD0 last+AF8-cp +AD0 undefined+ADs
|
||||
last+AF8-enc +AD0 null+AF8-enc+ADs last+AF8-cp +AD0 0+ADs
|
||||
+AH0AOw
|
||||
var cache +AD0 +AHs
|
||||
encache: encache,
|
||||
@ -279,21 +287,20 @@
|
||||
|
||||
var BM +AD0 +ACI-ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-/+ACIAOw
|
||||
var SetD +AD0 +ACI-ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?+ACIAOw
|
||||
var last+AF8-enc, last+AF8-cp+ADs
|
||||
var last+AF8-enc +AD0 null+AF8-enc, last+AF8-cp +AD0 0+ADs
|
||||
var encode +AD0 function encode(cp, data, ofmt) +AHs
|
||||
if(cp +AD0APQA9 last+AF8-cp) +AHs return last+AF8-enc(data, ofmt)+ADs +AH0
|
||||
if(cpecache+AFs-cp+AF0 +ACEAPQA9 undefined) +AHs last+AF8-enc +AD0 cpecache+AFs-last+AF8-cp+AD0-cp+AF0AOw return last+AF8-enc(data, ofmt)+ADs +AH0
|
||||
if(cp +AD0APQA9 last+AF8-cp +ACYAJg last+AF8-enc) +AHs return last+AF8-enc(data, ofmt)+ADs +AH0
|
||||
if(cpecache+AFs-cp+AF0) +AHs last+AF8-enc +AD0 cpecache+AFs-last+AF8-cp+AD0-cp+AF0AOw return last+AF8-enc(data, ofmt)+ADs +AH0
|
||||
if(has+AF8-buf +ACYAJg Buffer.isBuffer(data)) data +AD0 data.toString('utf8')+ADs
|
||||
var len +AD0 data.length+ADs
|
||||
var out +AD0 has+AF8-buf ? new Buffer(4+ACo-len) : +AFsAXQ, w, i, j +AD0 0, c, tt, ww+ADs
|
||||
var C +AD0 cpt+AFs-cp+AF0, E, M+ADs
|
||||
var out +AD0 has+AF8-buf ? new Buffer(4+ACo-len) : +AFsAXQ, w+AD0-0, i+AD0-0, j +AD0 0, ww+AD0-0+ADs
|
||||
var C +AD0 cpt+AFs-cp+AF0, E, M +AD0 +ACIAIgA7
|
||||
if(C +ACYAJg (E+AD0-C.enc)) for(i +AD0 0+ADs i +ADw len+ADs +-+-i, +-+-j) +AHs
|
||||
w +AD0 E+AFs-data+AFs-i+AF0AXQA7
|
||||
out+AFs-j+AF0 +AD0 w+ACY-255+ADs
|
||||
if(w +AD4 255) +AHs
|
||||
out+AFs-j+AF0 +AD0 w+AD4APg-8+ADs
|
||||
out+AFsAKwAr-j+AF0 +AD0 w+ACY-255+ADs
|
||||
+AH0
|
||||
+AH0 else out+AFs-j+AF0 +AD0 w+ACY-255+ADs
|
||||
+AH0
|
||||
else if((M+AD0-magic+AFs-cp+AF0)) switch(M) +AHs
|
||||
case +ACI-utf8+ACI:
|
||||
@ -358,16 +365,16 @@
|
||||
out+AFs-j+-3+AF0 +AD0 w+ACY-255+ADs w +AD4APgA9 8+ADs
|
||||
out+AFs-j+-2+AF0 +AD0 w+ACY-255+ADs w +AD4APgA9 8+ADs
|
||||
out+AFs-j+-1+AF0 +AD0 w+ACY-255+ADs w +AD4APgA9 8+ADs
|
||||
out+AFs-j+AF0 +AD0 w+ACY-255+ADs w +AD4APgA9 8+ADs
|
||||
out+AFs-j+AF0 +AD0 w+ACY-255+ADs
|
||||
j+-+AD0-4+ADs
|
||||
+AH0
|
||||
break+ADs
|
||||
case +ACI-utf7+ACI:
|
||||
for(i +AD0 0+ADs i +ADw len+ADs i+-+-) +AHs
|
||||
c +AD0 data+AFs-i+AF0AOw
|
||||
var c +AD0 data+AFs-i+AF0AOw
|
||||
if(c +AD0APQA9 +ACIAKwAi) +AHs out+AFs-j+-+-+AF0 +AD0 0x2b+ADs out+AFs-j+-+-+AF0 +AD0 0x2d+ADs continue+ADs +AH0
|
||||
if(SetD.indexOf(c) +AD4 -1) +AHs out+AFs-j+-+-+AF0 +AD0 c.charCodeAt(0)+ADs continue+ADs +AH0
|
||||
tt +AD0 encode(1201, c)+ADs
|
||||
var tt +AD0 encode(1201, c)+ADs
|
||||
out+AFs-j+-+-+AF0 +AD0 0x2b+ADs
|
||||
out+AFs-j+-+-+AF0 +AD0 BM.charCodeAt(tt+AFs-0+AF0APgA+-2)+ADs
|
||||
out+AFs-j+-+-+AF0 +AD0 BM.charCodeAt(((tt+AFs-0+AF0AJg-0x03)+ADwAPA-4) +- ((tt+AFs-1+AF0AfAB8-0)+AD4APg-4))+ADs
|
||||
@ -379,31 +386,30 @@
|
||||
+AH0
|
||||
else throw new Error(+ACI-Unrecognized CP: +ACI +- cp)+ADs
|
||||
out +AD0 out.slice(0,j)+ADs
|
||||
if(typeof Buffer +AD0APQA9 'undefined') return (ofmt +AD0APQ 'str') ? out.map(sfcc).join(+ACIAIg) : out+ADs
|
||||
if(ofmt +AD0APQA9 undefined +AHwAfA ofmt +AD0APQA9 'buf') return out+ADs
|
||||
if(+ACE-has+AF8-buf) return (ofmt +AD0APQ 'str') ? (out).map(sfcc).join(+ACIAIg) : out+ADs
|
||||
if(+ACE-ofmt +AHwAfA ofmt +AD0APQA9 'buf') return out+ADs
|
||||
if(ofmt +ACEAPQA9 'arr') return out.toString('binary')+ADs
|
||||
return +AFsAXQ.slice.call(out)+ADs
|
||||
+AH0AOw
|
||||
var decode +AD0 function decode(cp, data) +AHs
|
||||
var F+ADs if((F+AD0-cpdcache+AFs-cp+AF0)) return F(data)+ADs
|
||||
var len +AD0 data.length, out +AD0 new Array(len), w, i, j +AD0 1, k +AD0 0, ww+ADs
|
||||
var C +AD0 cpt+AFs-cp+AF0, D, M+ADs
|
||||
if(typeof data +AD0APQA9 +ACI-string+ACI) return decode(cp, data.split(+ACIAIg).map(cca))+ADs
|
||||
var len +AD0 data.length, out +AD0 new Array(len), s+AD0AIgAi, w+AD0-0, i+AD0-0, j+AD0-1, k+AD0-0, ww+AD0-0+ADs
|
||||
var C +AD0 cpt+AFs-cp+AF0, D, M+AD0AIgAiADs
|
||||
if(C +ACYAJg (D+AD0-C.dec)) +AHs
|
||||
if(typeof data +AD0APQA9 +ACI-string+ACI) data +AD0 data.split(+ACIAIg).map(cca)+ADs
|
||||
for(i +AD0 0+ADs i +ADw len+ADs i+-+AD0-j) +AHs
|
||||
j +AD0 2+ADs
|
||||
w +AD0 D+AFs(data+AFs-i+AF0APAA8-8)+- data+AFs-i+-1+AF0AXQA7
|
||||
if(+ACE-w) +AHs
|
||||
s +AD0 D+AFs(data+AFs-i+AF0APAA8-8)+- data+AFs-i+-1+AF0AXQA7
|
||||
if(+ACE-s) +AHs
|
||||
j +AD0 1+ADs
|
||||
w +AD0 D+AFs-data+AFs-i+AF0AXQA7
|
||||
s +AD0 D+AFs-data+AFs-i+AF0AXQA7
|
||||
+AH0
|
||||
if(+ACE-w) throw new Error('Unrecognized code: ' +- data+AFs-i+AF0 +- ' ' +- data+AFs-i+-j-1+AF0 +- ' ' +- i +- ' ' +- j +- ' ' +- D+AFs-data+AFs-i+AF0AXQ)+ADs
|
||||
out+AFs-k+-+-+AF0 +AD0 w+ADs
|
||||
if(+ACE-s) throw new Error('Unrecognized code: ' +- data+AFs-i+AF0 +- ' ' +- data+AFs-i+-j-1+AF0 +- ' ' +- i +- ' ' +- j +- ' ' +- D+AFs-data+AFs-i+AF0AXQ)+ADs
|
||||
out+AFs-k+-+-+AF0 +AD0 s+ADs
|
||||
+AH0
|
||||
+AH0
|
||||
else if((M+AD0-magic+AFs-cp+AF0)) switch(M) +AHs
|
||||
case +ACI-utf8+ACI:
|
||||
i +AD0 0+ADs
|
||||
if(len +AD4APQ 3 +ACYAJg data+AFs-0+AF0 +AD0APQ 0xEF) if(data+AFs-1+AF0 +AD0APQ 0xBB +ACYAJg data+AFs-2+AF0 +AD0APQ 0xBF) i +AD0 3+ADs
|
||||
for(+ADs i +ADw len+ADs i+-+AD0-j) +AHs
|
||||
j +AD0 1+ADs
|
||||
@ -423,24 +429,21 @@
|
||||
for(i +AD0 0+ADs i +ADw len+ADs i+-+-) out+AFs-i+AF0 +AD0 String.fromCharCode(data+AFs-i+AF0)+ADs
|
||||
k +AD0 len+ADs break+ADs
|
||||
case +ACI-utf16le+ACI:
|
||||
i +AD0 0+ADs
|
||||
if(len +AD4APQ 2 +ACYAJg data+AFs-0+AF0 +AD0APQ 0xFF) if(data+AFs-1+AF0 +AD0APQ 0xFE) i +AD0 2+ADs
|
||||
if(has+AF8-buf +ACYAJg Buffer.isBuffer(data)) return data.toString(M)+ADs
|
||||
j +AD0 2+ADs
|
||||
for(+ADs i +ADw len+ADs i+-+AD0-j) +AHs
|
||||
for(+ADs i+-1 +ADw len+ADs i+-+AD0-j) +AHs
|
||||
out+AFs-k+-+-+AF0 +AD0 String.fromCharCode((data+AFs-i+-1+AF0APAA8-8) +- data+AFs-i+AF0)+ADs
|
||||
+AH0
|
||||
break+ADs
|
||||
case +ACI-utf16be+ACI:
|
||||
i +AD0 0+ADs
|
||||
if(len +AD4APQ 2 +ACYAJg data+AFs-0+AF0 +AD0APQ 0xFE) if(data+AFs-1+AF0 +AD0APQ 0xFF) i +AD0 2+ADs
|
||||
j +AD0 2+ADs
|
||||
for(+ADs i +ADw len+ADs i+-+AD0-j) +AHs
|
||||
for(+ADs i+-1 +ADw len+ADs i+-+AD0-j) +AHs
|
||||
out+AFs-k+-+-+AF0 +AD0 String.fromCharCode((data+AFs-i+AF0APAA8-8) +- data+AFs-i+-1+AF0)+ADs
|
||||
+AH0
|
||||
break+ADs
|
||||
case +ACI-utf32le+ACI:
|
||||
i +AD0 0+ADs
|
||||
if(len +AD4APQ 4 +ACYAJg data+AFs-0+AF0 +AD0APQ 0xFF) if(data+AFs-1+AF0 +AD0APQ 0xFE +ACYAJg data+AFs-2+AF0 +AD0APQA9 0 +ACYAJg data+AFs-3+AF0 +AD0APQA9 0) i +AD0 4+ADs
|
||||
j +AD0 4+ADs
|
||||
for(+ADs i +ADw len+ADs i+-+AD0-j) +AHs
|
||||
@ -454,7 +457,6 @@
|
||||
+AH0
|
||||
break+ADs
|
||||
case +ACI-utf32be+ACI:
|
||||
i +AD0 0+ADs
|
||||
if(len +AD4APQ 4 +ACYAJg data+AFs-3+AF0 +AD0APQ 0xFF) if(data+AFs-2+AF0 +AD0APQ 0xFE +ACYAJg data+AFs-1+AF0 +AD0APQA9 0 +ACYAJg data+AFs-0+AF0 +AD0APQA9 0) i +AD0 4+ADs
|
||||
j +AD0 4+ADs
|
||||
for(+ADs i +ADw len+ADs i+-+AD0-j) +AHs
|
||||
@ -468,7 +470,6 @@
|
||||
+AH0
|
||||
break+ADs
|
||||
case +ACI-utf7+ACI:
|
||||
i +AD0 0+ADs
|
||||
if(len +AD4APQ 4 +ACYAJg data+AFs-0+AF0 +AD0APQ 0x2B +ACYAJg data+AFs-1+AF0 +AD0APQ 0x2F +ACYAJg data+AFs-2+AF0 +AD0APQ 0x76) +AHs
|
||||
if(len +AD4APQ 5 +ACYAJg data+AFs-3+AF0 +AD0APQ 0x38 +ACYAJg data+AFs-4+AF0 +AD0APQ 0x2D) i +AD0 5+ADs
|
||||
else if(data+AFs-3+AF0 +AD0APQ 0x38 +AHwAfA data+AFs-3+AF0 +AD0APQ 0x39 +AHwAfA data+AFs-3+AF0 +AD0APQ 0x2B +AHwAfA data+AFs-3+AF0 +AD0APQ 0x2F) i +AD0 4+ADs
|
||||
@ -481,9 +482,9 @@
|
||||
var dash +AD0 0+ADs
|
||||
if(data+AFs-i+-j+AF0 +AD0APQA9 0x2d) +AHs +-+-j+ADs dash+AD0-1+ADs +AH0
|
||||
var tt +AD0 +AFsAXQA7
|
||||
var o64+ADs
|
||||
var c1, c2, c3+ADs
|
||||
var e1, e2, e3, e4+ADs
|
||||
var o64 +AD0 +ACIAIgA7
|
||||
var c1+AD0-0, c2+AD0-0, c3+AD0-0+ADs
|
||||
var e1+AD0-0, e2+AD0-0, e3+AD0-0, e4+AD0-0+ADs
|
||||
for(var l +AD0 1+ADs l +ADw j - dash+ADs) +AHs
|
||||
e1 +AD0 BM.indexOf(String.fromCharCode(data+AFs-i+-l+-+-+AF0))+ADs
|
||||
e2 +AD0 BM.indexOf(String.fromCharCode(data+AFs-i+-l+-+-+AF0))+ADs
|
||||
@ -498,9 +499,8 @@
|
||||
c3 +AD0 (e3 +ACY 3) +ADwAPA 6 +AHw e4+ADs
|
||||
if(e4 +ADw 64) tt.push(c3)+ADs
|
||||
+AH0
|
||||
if((tt.length +ACY 1) +AD0APQA9 1) tt.length--+ADs
|
||||
o64 +AD0 decode(1201, tt)+ADs
|
||||
for(l +AD0 0+ADs l +ADw o64.length+ADs +-+-l) out+AFs-k+-+-+AF0 +AD0 o64+AFs-l+AF0AOw
|
||||
for(l +AD0 0+ADs l +ADw o64.length+ADs +-+-l) out+AFs-k+-+-+AF0 +AD0 o64.charAt(l)+ADs
|
||||
+AH0
|
||||
break+ADs
|
||||
default: throw new Error(+ACI-Unsupported magic: +ACI +- cp +- +ACI +ACI +- magic+AFs-cp+AF0)+ADs
|
||||
@ -508,7 +508,7 @@
|
||||
else throw new Error(+ACI-Unrecognized CP: +ACI +- cp)+ADs
|
||||
return out.slice(0,k).join(+ACIAIg)+ADs
|
||||
+AH0AOw
|
||||
var hascp +AD0 function hascp(cp) +AHs return cpt+AFs-cp+AF0 +AHwAfA magic+AFs-cp+AF0AOw +AH0AOw
|
||||
var hascp +AD0 function hascp(cp) +AHs return +ACEAIQ(cpt+AFs-cp+AF0 +AHwAfA magic+AFs-cp+AF0)+ADs +AH0AOw
|
||||
cpt.utils +AD0 +AHs decode: decode, encode: encode, hascp: hascp, magic: magic, cache:cache +AH0AOw
|
||||
return cpt+ADs
|
||||
+AH0))+ADs
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* cputils.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ft=javascript: */
|
||||
/*jshint newcap: false */
|
||||
(function(root, factory){
|
||||
(function(root, factory) {
|
||||
"use strict";
|
||||
if(typeof cptable === "undefined") {
|
||||
if(typeof require !== "undefined"){
|
||||
@ -27,11 +28,11 @@
|
||||
var magic_cache = [65001];
|
||||
var magic_decode = {};
|
||||
var magic_encode = {};
|
||||
var cpecache = {};
|
||||
var cpdcache = {};
|
||||
var cpecache = {};
|
||||
|
||||
var sfcc = function sfcc(x) { return String.fromCharCode(x); };
|
||||
var cca = function cca(x){ return x.charCodeAt(0); };
|
||||
var cca = function cca(x) { return x.charCodeAt(0); };
|
||||
|
||||
var has_buf = (typeof Buffer !== 'undefined');
|
||||
if(has_buf) {
|
||||
@ -50,12 +51,12 @@
|
||||
var EE = make_EE(cpt[cp].enc);
|
||||
return function sbcs_e(data, ofmt) {
|
||||
var len = data.length;
|
||||
var out, i, j, D, w;
|
||||
var out, i=0, j=0, D=0, w=0;
|
||||
if(typeof data === 'string') {
|
||||
out = Buffer(len);
|
||||
out = new Buffer(len);
|
||||
for(i = 0; i < len; ++i) out[i] = EE[data.charCodeAt(i)];
|
||||
} else if(Buffer.isBuffer(data)) {
|
||||
out = Buffer(2*len);
|
||||
out = new Buffer(2*len);
|
||||
j = 0;
|
||||
for(i = 0; i < len; ++i) {
|
||||
D = data[i];
|
||||
@ -70,24 +71,24 @@
|
||||
}
|
||||
out = out.slice(0,j);
|
||||
} else {
|
||||
out = Buffer(len);
|
||||
out = new Buffer(len);
|
||||
for(i = 0; i < len; ++i) out[i] = EE[data[i].charCodeAt(0)];
|
||||
}
|
||||
if(ofmt === undefined || ofmt === 'buf') return out;
|
||||
if(!ofmt || ofmt === 'buf') return out;
|
||||
if(ofmt !== 'arr') return out.toString('binary');
|
||||
return [].slice.call(out);
|
||||
};
|
||||
};
|
||||
var sbcs_decode = function make_sbcs_decode(cp) {
|
||||
var D = cpt[cp].dec;
|
||||
var DD = new Buffer(131072), d=0, c;
|
||||
var DD = new Buffer(131072), d=0, c="";
|
||||
for(d=0;d<D.length;++d) {
|
||||
if(!(c=D[d])) continue;
|
||||
var w = c.charCodeAt(0);
|
||||
DD[2*d] = w&255; DD[2*d+1] = w>>8;
|
||||
}
|
||||
return function sbcs_d(data) {
|
||||
var len = data.length, i=0, j;
|
||||
var len = data.length, i=0, j=0;
|
||||
if(2 * len > mdl) { mdl = 2 * len; mdb = new Buffer(mdl); }
|
||||
if(Buffer.isBuffer(data)) {
|
||||
for(i = 0; i < len; i++) {
|
||||
@ -119,7 +120,7 @@
|
||||
EE[2*f] = E[e] & 255; EE[2*f+1] = E[e]>>8;
|
||||
}
|
||||
return function dbcs_e(data, ofmt) {
|
||||
var len = data.length, out = new Buffer(2*len), i, j, jj, k, D;
|
||||
var len = data.length, out = new Buffer(2*len), i=0, j=0, jj=0, k=0, D=0;
|
||||
if(typeof data === 'string') {
|
||||
for(i = k = 0; i < len; ++i) {
|
||||
j = data.charCodeAt(i)*2;
|
||||
@ -146,7 +147,7 @@
|
||||
out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];
|
||||
}
|
||||
}
|
||||
if(ofmt === undefined || ofmt === 'buf') return out;
|
||||
if(!ofmt || ofmt === 'buf') return out;
|
||||
if(ofmt !== 'arr') return out.toString('binary');
|
||||
return [].slice.call(out);
|
||||
};
|
||||
@ -162,7 +163,7 @@
|
||||
DD[j] = w&255; DD[j+1] = w>>8;
|
||||
}
|
||||
return function dbcs_d(data) {
|
||||
var len = data.length, out = new Buffer(2*len), i, j, k=0;
|
||||
var len = data.length, out = new Buffer(2*len), i=0, j=0, k=0;
|
||||
if(Buffer.isBuffer(data)) {
|
||||
for(i = 0; i < len; i++) {
|
||||
j = 2*data[i];
|
||||
@ -186,6 +187,7 @@
|
||||
};
|
||||
};
|
||||
magic_decode[65001] = function utf8_d(data) {
|
||||
if(typeof data === "string") return utf8_d(data.split("").map(cca));
|
||||
var len = data.length, w = 0, ww = 0;
|
||||
if(4 * len > mdl) { mdl = 4 * len; mdb = new Buffer(mdl); }
|
||||
var i = 0;
|
||||
@ -205,6 +207,11 @@
|
||||
return mdb.slice(0,k).toString('ucs2');
|
||||
};
|
||||
magic_encode[65001] = function utf8_e(data, ofmt) {
|
||||
if(has_buf && Buffer.isBuffer(data)) {
|
||||
if(!ofmt || ofmt === 'buf') return data;
|
||||
if(ofmt !== 'arr') return data.toString('binary');
|
||||
return [].slice.call(data);
|
||||
}
|
||||
var len = data.length, w = 0, ww = 0, j = 0;
|
||||
var direct = typeof data === "string";
|
||||
if(4 * len > mdl) { mdl = 4 * len; mdb = new Buffer(mdl); }
|
||||
@ -227,7 +234,7 @@
|
||||
mdb[j++] = 128 + (w&63);
|
||||
}
|
||||
}
|
||||
if(ofmt === undefined || ofmt === 'buf') return mdb.slice(0,j);
|
||||
if(!ofmt || ofmt === 'buf') return mdb.slice(0,j);
|
||||
if(ofmt !== 'arr') return mdb.slice(0,j).toString('binary');
|
||||
return [].slice.call(mdb, 0, j);
|
||||
};
|
||||
@ -236,7 +243,7 @@
|
||||
var encache = function encache() {
|
||||
if(has_buf) {
|
||||
if(cpdcache[sbcs_cache[0]]) return;
|
||||
var i, s;
|
||||
var i=0, s=0;
|
||||
for(i = 0; i < sbcs_cache.length; ++i) {
|
||||
s = sbcs_cache[i];
|
||||
if(cpt[s]) {
|
||||
@ -258,7 +265,8 @@
|
||||
}
|
||||
}
|
||||
};
|
||||
var cp_decache = function cp_decache(cp) { cpdcache[cp] = cpecache[cp] = undefined; };
|
||||
var null_enc = function(data, ofmt) { return ""; };
|
||||
var cp_decache = function cp_decache(cp) { delete cpdcache[cp]; delete cpecache[cp]; };
|
||||
var decache = function decache() {
|
||||
if(has_buf) {
|
||||
if(!cpdcache[sbcs_cache[0]]) return;
|
||||
@ -266,7 +274,7 @@
|
||||
dbcs_cache.forEach(cp_decache);
|
||||
magic_cache.forEach(cp_decache);
|
||||
}
|
||||
last_enc = last_cp = undefined;
|
||||
last_enc = null_enc; last_cp = 0;
|
||||
};
|
||||
var cache = {
|
||||
encache: encache,
|
||||
@ -279,21 +287,20 @@
|
||||
|
||||
var BM = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
var SetD = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?";
|
||||
var last_enc, last_cp;
|
||||
var last_enc = null_enc, last_cp = 0;
|
||||
var encode = function encode(cp, data, ofmt) {
|
||||
if(cp === last_cp) { return last_enc(data, ofmt); }
|
||||
if(cpecache[cp] !== undefined) { last_enc = cpecache[last_cp=cp]; return last_enc(data, ofmt); }
|
||||
if(cp === last_cp && last_enc) { return last_enc(data, ofmt); }
|
||||
if(cpecache[cp]) { last_enc = cpecache[last_cp=cp]; return last_enc(data, ofmt); }
|
||||
if(has_buf && Buffer.isBuffer(data)) data = data.toString('utf8');
|
||||
var len = data.length;
|
||||
var out = has_buf ? new Buffer(4*len) : [], w, i, j = 0, c, tt, ww;
|
||||
var C = cpt[cp], E, M;
|
||||
var out = has_buf ? new Buffer(4*len) : [], w=0, i=0, j = 0, ww=0;
|
||||
var C = cpt[cp], E, M = "";
|
||||
if(C && (E=C.enc)) for(i = 0; i < len; ++i, ++j) {
|
||||
w = E[data[i]];
|
||||
out[j] = w&255;
|
||||
if(w > 255) {
|
||||
out[j] = w>>8;
|
||||
out[++j] = w&255;
|
||||
}
|
||||
} else out[j] = w&255;
|
||||
}
|
||||
else if((M=magic[cp])) switch(M) {
|
||||
case "utf8":
|
||||
@ -358,16 +365,16 @@
|
||||
out[j+3] = w&255; w >>= 8;
|
||||
out[j+2] = w&255; w >>= 8;
|
||||
out[j+1] = w&255; w >>= 8;
|
||||
out[j] = w&255; w >>= 8;
|
||||
out[j] = w&255;
|
||||
j+=4;
|
||||
}
|
||||
break;
|
||||
case "utf7":
|
||||
for(i = 0; i < len; i++) {
|
||||
c = data[i];
|
||||
var c = data[i];
|
||||
if(c === "+") { out[j++] = 0x2b; out[j++] = 0x2d; continue; }
|
||||
if(SetD.indexOf(c) > -1) { out[j++] = c.charCodeAt(0); continue; }
|
||||
tt = encode(1201, c);
|
||||
var tt = encode(1201, c);
|
||||
out[j++] = 0x2b;
|
||||
out[j++] = BM.charCodeAt(tt[0]>>2);
|
||||
out[j++] = BM.charCodeAt(((tt[0]&0x03)<<4) + ((tt[1]||0)>>4));
|
||||
@ -379,31 +386,30 @@
|
||||
}
|
||||
else throw new Error("Unrecognized CP: " + cp);
|
||||
out = out.slice(0,j);
|
||||
if(typeof Buffer === 'undefined') return (ofmt == 'str') ? out.map(sfcc).join("") : out;
|
||||
if(ofmt === undefined || ofmt === 'buf') return out;
|
||||
if(!has_buf) return (ofmt == 'str') ? (out).map(sfcc).join("") : out;
|
||||
if(!ofmt || ofmt === 'buf') return out;
|
||||
if(ofmt !== 'arr') return out.toString('binary');
|
||||
return [].slice.call(out);
|
||||
};
|
||||
var decode = function decode(cp, data) {
|
||||
var F; if((F=cpdcache[cp])) return F(data);
|
||||
var len = data.length, out = new Array(len), w, i, j = 1, k = 0, ww;
|
||||
var C = cpt[cp], D, M;
|
||||
if(typeof data === "string") return decode(cp, data.split("").map(cca));
|
||||
var len = data.length, out = new Array(len), s="", w=0, i=0, j=1, k=0, ww=0;
|
||||
var C = cpt[cp], D, M="";
|
||||
if(C && (D=C.dec)) {
|
||||
if(typeof data === "string") data = data.split("").map(cca);
|
||||
for(i = 0; i < len; i+=j) {
|
||||
j = 2;
|
||||
w = D[(data[i]<<8)+ data[i+1]];
|
||||
if(!w) {
|
||||
s = D[(data[i]<<8)+ data[i+1]];
|
||||
if(!s) {
|
||||
j = 1;
|
||||
w = D[data[i]];
|
||||
s = D[data[i]];
|
||||
}
|
||||
if(!w) throw new Error('Unrecognized code: ' + data[i] + ' ' + data[i+j-1] + ' ' + i + ' ' + j + ' ' + D[data[i]]);
|
||||
out[k++] = w;
|
||||
if(!s) throw new Error('Unrecognized code: ' + data[i] + ' ' + data[i+j-1] + ' ' + i + ' ' + j + ' ' + D[data[i]]);
|
||||
out[k++] = s;
|
||||
}
|
||||
}
|
||||
else if((M=magic[cp])) switch(M) {
|
||||
case "utf8":
|
||||
i = 0;
|
||||
if(len >= 3 && data[0] == 0xEF) if(data[1] == 0xBB && data[2] == 0xBF) i = 3;
|
||||
for(; i < len; i+=j) {
|
||||
j = 1;
|
||||
@ -423,24 +429,21 @@
|
||||
for(i = 0; i < len; i++) out[i] = String.fromCharCode(data[i]);
|
||||
k = len; break;
|
||||
case "utf16le":
|
||||
i = 0;
|
||||
if(len >= 2 && data[0] == 0xFF) if(data[1] == 0xFE) i = 2;
|
||||
if(has_buf && Buffer.isBuffer(data)) return data.toString(M);
|
||||
j = 2;
|
||||
for(; i < len; i+=j) {
|
||||
for(; i+1 < len; i+=j) {
|
||||
out[k++] = String.fromCharCode((data[i+1]<<8) + data[i]);
|
||||
}
|
||||
break;
|
||||
case "utf16be":
|
||||
i = 0;
|
||||
if(len >= 2 && data[0] == 0xFE) if(data[1] == 0xFF) i = 2;
|
||||
j = 2;
|
||||
for(; i < len; i+=j) {
|
||||
for(; i+1 < len; i+=j) {
|
||||
out[k++] = String.fromCharCode((data[i]<<8) + data[i+1]);
|
||||
}
|
||||
break;
|
||||
case "utf32le":
|
||||
i = 0;
|
||||
if(len >= 4 && data[0] == 0xFF) if(data[1] == 0xFE && data[2] === 0 && data[3] === 0) i = 4;
|
||||
j = 4;
|
||||
for(; i < len; i+=j) {
|
||||
@ -454,7 +457,6 @@
|
||||
}
|
||||
break;
|
||||
case "utf32be":
|
||||
i = 0;
|
||||
if(len >= 4 && data[3] == 0xFF) if(data[2] == 0xFE && data[1] === 0 && data[0] === 0) i = 4;
|
||||
j = 4;
|
||||
for(; i < len; i+=j) {
|
||||
@ -468,7 +470,6 @@
|
||||
}
|
||||
break;
|
||||
case "utf7":
|
||||
i = 0;
|
||||
if(len >= 4 && data[0] == 0x2B && data[1] == 0x2F && data[2] == 0x76) {
|
||||
if(len >= 5 && data[3] == 0x38 && data[4] == 0x2D) i = 5;
|
||||
else if(data[3] == 0x38 || data[3] == 0x39 || data[3] == 0x2B || data[3] == 0x2F) i = 4;
|
||||
@ -481,9 +482,9 @@
|
||||
var dash = 0;
|
||||
if(data[i+j] === 0x2d) { ++j; dash=1; }
|
||||
var tt = [];
|
||||
var o64;
|
||||
var c1, c2, c3;
|
||||
var e1, e2, e3, e4;
|
||||
var o64 = "";
|
||||
var c1=0, c2=0, c3=0;
|
||||
var e1=0, e2=0, e3=0, e4=0;
|
||||
for(var l = 1; l < j - dash;) {
|
||||
e1 = BM.indexOf(String.fromCharCode(data[i+l++]));
|
||||
e2 = BM.indexOf(String.fromCharCode(data[i+l++]));
|
||||
@ -498,9 +499,8 @@
|
||||
c3 = (e3 & 3) << 6 | e4;
|
||||
if(e4 < 64) tt.push(c3);
|
||||
}
|
||||
if((tt.length & 1) === 1) tt.length--;
|
||||
o64 = decode(1201, tt);
|
||||
for(l = 0; l < o64.length; ++l) out[k++] = o64[l];
|
||||
for(l = 0; l < o64.length; ++l) out[k++] = o64.charAt(l);
|
||||
}
|
||||
break;
|
||||
default: throw new Error("Unsupported magic: " + cp + " " + magic[cp]);
|
||||
@ -508,7 +508,7 @@
|
||||
else throw new Error("Unrecognized CP: " + cp);
|
||||
return out.slice(0,k).join("");
|
||||
};
|
||||
var hascp = function hascp(cp) { return cpt[cp] || magic[cp]; };
|
||||
var hascp = function hascp(cp) { return !!(cpt[cp] || magic[cp]); };
|
||||
cpt.utils = { decode: decode, encode: encode, hascp: hascp, magic: magic, cache:cache };
|
||||
return cpt;
|
||||
}));
|
||||
|
14
misc/flow.js
Normal file
14
misc/flow.js
Normal file
@ -0,0 +1,14 @@
|
||||
/*::
|
||||
type CPTable = {
|
||||
[key: string|number]:any;
|
||||
utils:{
|
||||
decode:any;
|
||||
encode:any;
|
||||
hascp:any;
|
||||
magic:any;
|
||||
cache:any;
|
||||
};
|
||||
};
|
||||
|
||||
declare var cptable: CPTable;
|
||||
*/
|
42
misc/help.sh
Executable file
42
misc/help.sh
Executable file
@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
# make_help.sh -- process listing of targets and special items in Makefile
|
||||
# Copyright (C) 2016-present SheetJS
|
||||
#
|
||||
# usage in makefile: pipe the output of the following command:
|
||||
# @grep -hE '(^[a-zA-Z_-][ a-zA-Z_-]*:.*?|^#[#*])' $(MAKEFILE_LIST)
|
||||
#
|
||||
# lines starting with "## " are treated as subtitles
|
||||
# lines starting with "#* " are treated as plaintext comments
|
||||
# multiple targets with "## " after the ":" are rendered as separate targets
|
||||
# if the presumed default target is labeled, it will be assigned a unique color
|
||||
|
||||
awk '
|
||||
BEGIN{recipes=0;}
|
||||
!/#[#*] .*$/ {next;}
|
||||
{multi=0; isrecipe=0;}
|
||||
/^[^#]*:/ {isrecipe=1; ++recipes;}
|
||||
/^[^ :]* .*:/ {multi=1}
|
||||
multi==0 && isrecipe>0 { if(recipes > 1) print; else print $0, "[default]"; next}
|
||||
isrecipe == 0 {print; next}
|
||||
multi>0 {
|
||||
k=split($0, msg, "##"); m=split($0, a, ":"); n=split(a[1], b, " ");
|
||||
for(i=1; i<=n; ++i) print b[i] ":", "##" msg[2], (recipes==1 && i==1 ? "[default]" : "")
|
||||
}
|
||||
END {}
|
||||
' | if [[ -t 1 ]]; then
|
||||
awk '
|
||||
BEGIN {FS = ":.*?## "}
|
||||
{color=36}
|
||||
/\[default\]/ {color=35}
|
||||
NF==1 && /^##/ {color=34}
|
||||
NF==1 && /^#\*/ {color=20; $1 = substr($1, 4)}
|
||||
{printf "\033[" color "m%-20s\033[0m %s\n", $1, $2;}
|
||||
END{}' -
|
||||
else
|
||||
awk '
|
||||
BEGIN {FS = ":.*?## "}
|
||||
/^#\* / {$1 = substr($1, 4)}
|
||||
{printf "%-20s %s\n", $1, $2;}
|
||||
END{}' -
|
||||
fi
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "codepage",
|
||||
"version": "1.4.0",
|
||||
"version": "1.5.0",
|
||||
"author": "SheetJS",
|
||||
"description": "pure-JS library to handle codepages",
|
||||
"keywords": [ "codepage", "iconv", "convert", "strings" ],
|
||||
@ -33,7 +33,7 @@
|
||||
},
|
||||
"config": {
|
||||
"blanket": {
|
||||
"pattern": "[cptable.js,cputils.js,cpexcel.js]"
|
||||
"pattern": "[cputils.js]"
|
||||
}
|
||||
},
|
||||
"bugs": { "url": "https://github.com/SheetJS/js-codepage/issues" },
|
||||
|
@ -31,6 +31,7 @@
|
||||
1256,http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1256.TXT,1
|
||||
1257,http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1257.TXT,1
|
||||
1258,http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1258.TXT,1
|
||||
47451,http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/ATARIST.TXT,1
|
||||
10000,http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/MAC/ROMAN.TXT,1
|
||||
10006,http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/MAC/GREEK.TXT,1
|
||||
10007,http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/MAC/CYRILLIC.TXT,1
|
||||
@ -54,9 +55,13 @@
|
||||
28606,http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-16.TXT,1
|
||||
708,,1
|
||||
720,,1
|
||||
808,,1
|
||||
858,,1
|
||||
870,,1
|
||||
872,,1
|
||||
1010,,1
|
||||
1047,,1
|
||||
1132,,1
|
||||
1140,,1
|
||||
1141,,1
|
||||
1142,,1
|
||||
|
|
7
sbcs.js
7
sbcs.js
@ -1,6 +1,6 @@
|
||||
/* sbcs.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
||||
/*jshint -W100 */
|
||||
var cptable = {version:"1.4.0"};
|
||||
var cptable = {version:"1.5.0"};
|
||||
cptable[37] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ¢.<(+|&éêëèíîïìß!$*);¬-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ¤µ~stuvwxyz¡¿ÐÝÞ®^£¥·©§¶¼½¾[]¯¨´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[437] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[500] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ[.<(+!&éêëèíîïìß]$*);^-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ¤µ~stuvwxyz¡¿ÐÝÞ®¢£¥·©§¶¼½¾¬|¯¨´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
@ -30,6 +30,7 @@ cptable[1255] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006
|
||||
cptable[1256] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œں ،¢£¤¥¦§¨©ھ«¬®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûüے", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1257] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚<EFBFBD>„…†‡<E280A0>‰<EFBFBD>‹<EFBFBD>¨ˇ¸<CB87>‘’“”•–—<E28093>™<EFBFBD>›<EFBFBD>¯˛<C2AF> <EFBFBD>¢£¤<C2A3>¦§Ø©Ŗ«¬®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1258] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰<CB86>‹Œ<E280B9><C592><EFBFBD><EFBFBD>‘’“”•–—˜™<CB9C>›œ<E280BA><C593>Ÿ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[47451] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥ßƒáíóúñѪº¿⌐¬½¼¡«»ãõØøœŒÀÃÕ¨´†¶©®™ijIJאבגדהוזחטיכלמנסעפצקרשתןךםףץ§∧∞αβΓπΣσµτΦΘΩδ∮φ∈∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²³¯", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[10000] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ<C393>ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[10006] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ<CE90>", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[10007] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
@ -53,9 +54,13 @@ cptable[28605] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u000
|
||||
cptable[28606] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~
ĄąŁ€„Š§š©Ș«ŹźŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[708] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~│┤éâ╡à╢çêëèïî╖╕╣║╗╝ô╜╛ûù┐└┴┬├¤─┼╞╟╚╔╩،╦«»░▒▓╠═╬╧╨╤╥╙؛╘╒╓؟╫ءآأؤإئابةتثجحخدذرزسشصضطظعغ█▄▌▐▀ـفقكلمنهوىيًٌٍَُِّْ╪┘┌µ£■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[720] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~éâàçêëèïîّْô¤ـûùءآأؤ£إئابةتثجحخدذرزسشص«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ضطظعغفµقكلمنهوىي≡ًٌٍَُِ≈°∙·√ⁿ²■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[808] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[858] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´±‗¾¶§÷¸°¨·¹³²■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[870] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäţáăčçć[.<(+!&éęëůíîľĺß]$*);^-/ÂÄ˝ÁĂČÇĆ|,%_>?ˇÉĘËŮÍÎĽĹ`:#@'=\"˘abcdefghiśňđýřş°jklmnopqrłńš¸˛¤ą~stuvwxyzŚŇĐÝŘŞ˙ĄżŢŻ§žźŽŹŁŃŠ¨´×{ABCDEFGHIôöŕóő}JKLMNOPQRĚűüťúě\\÷STUVWXYZďÔÖŔÓŐ0123456789ĎŰÜŤÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[872] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬€лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№ыЫзЗшШэЭщЩчЧ§■ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1010] = (function(){ var d = "<22>\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"£$%&’()*+,-./0123456789:;<=>?àABCDEFGHIJKLMNOPQRSTUVWXYZ°ç§ˆ_µabcdefghijklmnopqrstuvwxyzéùè¨<C3A8><C2A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1047] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\n\b\u0018\u0019\u001c\u001d\u001e\u001f
\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ¢.<(+|&éêëèíîïìß!$*);^-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ¤µ~stuvwxyz¡¿Ð[Þ®¬£¥·©§¶¼½¾Ý¨¯]´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1132] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ<E0BAAD><E0BAAE><EFBFBD>ຯະາຳິີຶືຸູຼັົຽ<E0BABB><E0BABD><EFBFBD>ເແໂໃໄ່້໊໋໌ໍໆ<E0BB8D>ໜໝ₭<E0BB9D><E282AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>໐໑໒໓໔໕໖໗໘໙<E0BB98><E0BB99>¢¬¦ ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1140] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáãåçñ¢.<(+|&éêëèíîïìß!$*);¬-/ÂÄÀÁÃÅÇѦ,%_>?øÉÊËÈÍÎÏÌ`:#@'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ€µ~stuvwxyz¡¿ÐÝÞ®^£¥·©§¶¼½¾[]¯¨´×{ABCDEFGHIôöòóõ}JKLMNOPQR¹ûüùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1141] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a â{àáãåçñÄ.<(+!&éêëèíîïì~Ü$*);^-/Â[ÀÁÃÅÇÑö,%_>?øÉÊËÈÍÎÏÌ`:#§'=\"Øabcdefghi«»ðýþ±°jklmnopqrªºæ¸Æ€µßstuvwxyz¡¿ÐÝÞ®¢£¥·©@¶¼½¾¬|¯¨´×äABCDEFGHIô¦òóõüJKLMNOPQR¹û}ùúÿÖ÷STUVWXYZ²Ô\\ÒÓÕ0123456789³Û]ÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
cptable[1142] = (function(){ var d = "\u0000\u0001\u0002\u0003\t\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013
\b\u0018\u0019\u001c\u001d\u001e\u001f\n\u0017\u001b\u0005\u0006\u0007\u0016\u0004\u0014\u0015\u001a âäàáã}çñ#.<(+!&éêëèíîïì߀Å*);^-/ÂÄÀÁÃ$ÇÑø,%_>?¦ÉÊËÈÍÎÏÌ`:ÆØ'=\"@abcdefghi«»ðýþ±°jklmnopqrªº{¸[]µüstuvwxyz¡¿ÐÝÞ®¢£¥·©§¶¼½¾¬|¯¨´×æABCDEFGHIôöòóõåJKLMNOPQR¹û~ùúÿ\\÷STUVWXYZ²ÔÖÒÓÕ0123456789³ÛÜÙÚ", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })();
|
||||
|
18
test.js
18
test.js
@ -20,6 +20,7 @@ describe('README', function() {
|
||||
assert.equal(cp10000_711, 255);
|
||||
|
||||
var b1 = [0xbb,0xe3,0xd7,0xdc];
|
||||
var s1 = b1.map(function(x) { return String.fromCharCode(x); }).join("");
|
||||
var 汇总 = cptable.utils.decode(936, b1);
|
||||
var buf = cptable.utils.encode(936, 汇总);
|
||||
assert.equal(汇总,"汇总");
|
||||
@ -111,7 +112,7 @@ describe('entry conditions', function() {
|
||||
c(cp,i,'str');
|
||||
};
|
||||
describe('encode', function() {
|
||||
it('CP 1252 : sbcs', function() { chken(1252,"foobar"); });
|
||||
it('CP 1252 : sbcs', function() { chken(1252,"foo•bþr"); });
|
||||
it('CP 708 : sbcs', function() { chken(708,"ت and ث smiley faces");});
|
||||
it('CP 936 : dbcs', function() { chken(936, "这是中文字符测试");});
|
||||
});
|
||||
@ -152,6 +153,10 @@ function testfile(f,cp,type,skip) {
|
||||
z = cptable.utils.encode(cp, a);
|
||||
if(z.length != d.length) throw new Error(f + " " + JSON.stringify(z) + " != " + JSON.stringify(d) + " : " + z.length + " " + d.length);
|
||||
for(var i = 0; i != d.length; ++i) if(d[i] !== z[i]) throw new Error("" + i + " " + d[i] + "!=" + z[i]);
|
||||
if(f.indexOf("cptable.js") == -1) {
|
||||
cptable.utils.encode(cp, d, 'str');
|
||||
cptable.utils.encode(cp, d, 'arr');
|
||||
}
|
||||
}
|
||||
cptable.utils.cache.encache();
|
||||
chk(cp);
|
||||
@ -206,6 +211,12 @@ Object.keys(m).forEach(function(t){if(t != 16969) describe(m[t], function() {
|
||||
if(t != 65000) cmp(x,z);
|
||||
else { assert.equal(y, cptable.utils.decode(t, z)); }
|
||||
cptable.utils.cache.encache();
|
||||
cptable.utils.encode(t, y, 'str');
|
||||
cptable.utils.encode(t, y, 'arr');
|
||||
cptable.utils.cache.decache();
|
||||
cptable.utils.encode(t, y, 'str');
|
||||
cptable.utils.encode(t, y, 'arr');
|
||||
cptable.utils.cache.encache();
|
||||
}
|
||||
: null);
|
||||
it("should process README.md." + m[t], fs.existsSync('./misc/README.md.' + m[t]) ?
|
||||
@ -242,4 +253,9 @@ describe('failures', function() {
|
||||
it('should fail when presented with invalid char codes', function() {
|
||||
assert.throws(function(){cptable.utils.cache.decache(); return cptable.utils.encode(20127, [String.fromCharCode(0xAA)]);});
|
||||
});
|
||||
it('should fail to propagate UTF8 BOM in UTF7', function() {
|
||||
["+/v8-abc", "+/v9"].forEach(function(m) { assert.throws(function() {
|
||||
assert.equal(m, cptable.utils.encode(65000, cptable.utils.decode(65000, m)));
|
||||
}); });
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user