mirror of
https://github.com/zint/zint
synced 2024-11-16 20:57:25 +13:00
eci.c: replace libiconv-adapted code with own implementations so
as to fully comply with BSD license (for why Library GPL 2+ not compatible see https://opensource.stackexchange.com/a/6701), ~3% slower (maybe), +~6K extra in data (gb18030.c, gb2313.c & sjis.c removed, mapping .TXT files moved to backend/tools/data & extra ones added, 2 new PHP generators) GUI: CODE39/EXCODE39: show/hide HIBC check digit option in addition to enable/disable (less confusing) CLI: batch: pedantic check for EOF using intChar in newline fgetc() loop test_args.c: don't use WIFEXITED(), WEXITSTATUS() on Windows manual: lessen some copy/paste verbiage by referring back, other small tweaks/typos
This commit is contained in:
parent
d9f2e85246
commit
ab3cf4f395
11
ChangeLog
11
ChangeLog
@ -1,6 +1,17 @@
|
||||
Version 2.11.0.9 (dev) not released yet
|
||||
=======================================
|
||||
|
||||
Changes
|
||||
-------
|
||||
- GUI: sequence export dialog: add Postfix field for filename (#252)
|
||||
- eci.c: replace libiconv-adapted code with own implementations so
|
||||
as to fully comply with libzint's BSD license
|
||||
- GUI: CODE39/EXCODE39: show/hide HIBC check digit option
|
||||
|
||||
Bugs
|
||||
----
|
||||
- frontend/test_args.c: don't use WIFEXITED(), WEXITSTATUS() on Windows
|
||||
|
||||
|
||||
Version 2.11.0 (2022-05-24)
|
||||
===========================
|
||||
|
@ -68,9 +68,13 @@ ZINT_DEBUG:BOOL=OFF # Set debug compile flags
|
||||
ZINT_NOOPT:BOOL=OFF # Set no optimize compile flags
|
||||
ZINT_SANITIZE:BOOL=OFF # Set sanitize compile/link flags
|
||||
ZINT_STATIC:BOOL=OFF # Build static library
|
||||
ZINT_TEST:BOOL=ON # Set test compile flag
|
||||
ZINT_TEST:BOOL=OFF # Set test compile flag
|
||||
ZINT_USE_PNG:BOOL=ON # Build with PNG support
|
||||
ZINT_USE_QT:BOOL=ON # Build with Qt support
|
||||
|
||||
which can be set by doing e.g.
|
||||
|
||||
cmake -DZINT_SANITIZE=ON ..
|
||||
|
||||
For details on ZINT_TEST and building the zint test suite, see
|
||||
"backend/tests/README".
|
||||
|
@ -6,7 +6,7 @@ project(zint)
|
||||
|
||||
configure_file(zintconfig.h.in ${CMAKE_CURRENT_SOURCE_DIR}/zintconfig.h)
|
||||
|
||||
set(zint_COMMON_SRCS common.c library.c large.c reedsol.c gs1.c eci.c general_field.c sjis.c gb2312.c gb18030.c)
|
||||
set(zint_COMMON_SRCS common.c library.c large.c reedsol.c gs1.c eci.c general_field.c)
|
||||
set(zint_ONEDIM_SRCS code.c code128.c 2of5.c upcean.c telepen.c medical.c plessey.c rss.c)
|
||||
set(zint_POSTAL_SRCS postal.c auspost.c imail.c mailmark.c)
|
||||
set(zint_TWODIM_SRCS code16k.c codablock.c dmatrix.c pdf417.c qr.c maxicode.c composite.c aztec.c code49.c code1.c gridmtx.c hanxin.c dotcode.c ultra.c)
|
||||
|
4425
backend/big5.h
4425
backend/big5.h
File diff suppressed because it is too large
Load Diff
976
backend/eci.c
976
backend/eci.c
File diff suppressed because it is too large
Load Diff
@ -47,6 +47,31 @@ INTERNAL int utf8_to_eci(const int eci, const unsigned char source[], unsigned c
|
||||
INTERNAL int get_best_eci(const unsigned char source[], int length);
|
||||
INTERNAL int get_best_eci_segs(struct zint_symbol *symbol, struct zint_seg segs[], const int seg_count);
|
||||
|
||||
/* QRCODE Shift JIS helpers */
|
||||
INTERNAL int sjis_utf8(struct zint_symbol *symbol, const unsigned char source[], int *p_length,
|
||||
unsigned int *ddata);
|
||||
INTERNAL void sjis_cpy(const unsigned char source[], int *p_length, unsigned int *ddata, const int full_multibyte);
|
||||
INTERNAL void sjis_cpy_segs(struct zint_seg segs[], const int seg_count, unsigned int *ddata,
|
||||
const int full_multibyte);
|
||||
INTERNAL int sjis_utf8_to_eci(const int eci, const unsigned char source[], int *p_length, unsigned int *ddata,
|
||||
const int full_multibyte);
|
||||
|
||||
/* GRIDMATRIX GB 2312 helpers */
|
||||
INTERNAL int gb2312_utf8(struct zint_symbol *symbol, const unsigned char source[], int *p_length,
|
||||
unsigned int *ddata);
|
||||
INTERNAL void gb2312_cpy_segs(struct zint_seg segs[], const int seg_count, unsigned int *ddata,
|
||||
const int full_multibyte);
|
||||
INTERNAL int gb2312_utf8_to_eci(const int eci, const unsigned char source[], int *p_length, unsigned int *ddata,
|
||||
const int full_multibyte);
|
||||
|
||||
/* HANXIN GB 18030 helpers */
|
||||
INTERNAL int gb18030_utf8(struct zint_symbol *symbol, const unsigned char source[], int *p_length,
|
||||
unsigned int *ddata);
|
||||
INTERNAL void gb18030_cpy_segs(struct zint_seg segs[], const int seg_count, unsigned int *ddata,
|
||||
const int full_multibyte);
|
||||
INTERNAL int gb18030_utf8_to_eci(const int eci, const unsigned char source[], int *p_length, unsigned int *ddata,
|
||||
const int full_multibyte);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
1449
backend/eci_sb.h
1449
backend/eci_sb.h
File diff suppressed because it is too large
Load Diff
2989
backend/gb18030.c
2989
backend/gb18030.c
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,10 @@
|
||||
/* gb18030.h - Unicode to GB 18030
|
||||
|
||||
/* gb18030.h - tables for Unicode to GB 18030-2005,
|
||||
generated by "backend/tools/gen_eci_mb_h.php" from
|
||||
"jdk-1.4.2/GB18030.TXT"
|
||||
(see https://haible.de/bruno/charsets/conversion-tables/GB18030.tar.bz2) */
|
||||
/*
|
||||
libzint - the open source barcode library
|
||||
Copyright (C) 2019-2022 Robin Stuart <rstuart114@gmail.com>
|
||||
Copyright (C) 2016-2022 Robin Stuart <rstuart114@gmail.com>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
@ -32,25 +35,143 @@
|
||||
#ifndef Z_GB18030_H
|
||||
#define Z_GB18030_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
/* Unicode codepoints sorted */
|
||||
static const unsigned short gb18030_2_u[273] = {
|
||||
0x01F9, 0x1E3F, 0x20AC, 0x2E81, 0x2E84, 0x2E88, 0x2E8B, 0x2E8C,
|
||||
0x2E97, 0x2EA7, 0x2EAA, 0x2EAE, 0x2EB3, 0x2EB6, 0x2EB7, 0x2EBB,
|
||||
0x2ECA, 0x2FF0, 0x2FF1, 0x2FF2, 0x2FF3, 0x2FF4, 0x2FF5, 0x2FF6,
|
||||
0x2FF7, 0x2FF8, 0x2FF9, 0x2FFA, 0x2FFB, 0x303E, 0x3447, 0x3473,
|
||||
0x359E, 0x360E, 0x361A, 0x3918, 0x396E, 0x39CF, 0x39D0, 0x39DF,
|
||||
0x3A73, 0x3B4E, 0x3C6E, 0x3CE0, 0x4056, 0x415F, 0x4337, 0x43AC,
|
||||
0x43B1, 0x43DD, 0x44D6, 0x464C, 0x4661, 0x4723, 0x4729, 0x477C,
|
||||
0x478D, 0x4947, 0x497A, 0x497D, 0x4982, 0x4983, 0x4985, 0x4986,
|
||||
0x499B, 0x499F, 0x49B6, 0x49B7, 0x4C77, 0x4C9F, 0x4CA0, 0x4CA1,
|
||||
0x4CA2, 0x4CA3, 0x4D13, 0x4D14, 0x4D15, 0x4D16, 0x4D17, 0x4D18,
|
||||
0x4D19, 0x4DAE, 0x9FB4, 0x9FB5, 0x9FB6, 0x9FB7, 0x9FB8, 0x9FB9,
|
||||
0x9FBA, 0x9FBB, 0xE766, 0xE767, 0xE768, 0xE769, 0xE76A, 0xE76B,
|
||||
0xE76D, 0xE76E, 0xE76F, 0xE770, 0xE771, 0xE772, 0xE773, 0xE774,
|
||||
0xE775, 0xE776, 0xE777, 0xE778, 0xE779, 0xE77A, 0xE77B, 0xE77C,
|
||||
0xE77D, 0xE77E, 0xE77F, 0xE780, 0xE781, 0xE782, 0xE783, 0xE784,
|
||||
0xE785, 0xE786, 0xE787, 0xE788, 0xE789, 0xE78A, 0xE78B, 0xE78C,
|
||||
0xE78D, 0xE78E, 0xE78F, 0xE790, 0xE791, 0xE792, 0xE793, 0xE794,
|
||||
0xE795, 0xE796, 0xE797, 0xE798, 0xE799, 0xE79A, 0xE79B, 0xE79C,
|
||||
0xE79D, 0xE79E, 0xE79F, 0xE7A0, 0xE7A1, 0xE7A2, 0xE7A3, 0xE7A4,
|
||||
0xE7A5, 0xE7A6, 0xE7A7, 0xE7A8, 0xE7A9, 0xE7AA, 0xE7AB, 0xE7AC,
|
||||
0xE7AD, 0xE7AE, 0xE7AF, 0xE7B0, 0xE7B1, 0xE7B2, 0xE7B3, 0xE7B4,
|
||||
0xE7B5, 0xE7B6, 0xE7B7, 0xE7B8, 0xE7B9, 0xE7BA, 0xE7BB, 0xE7BC,
|
||||
0xE7BD, 0xE7BE, 0xE7BF, 0xE7C0, 0xE7C1, 0xE7C2, 0xE7C3, 0xE7C4,
|
||||
0xE7C5, 0xE7C6, 0xE7C9, 0xE7CA, 0xE7CB, 0xE7CC, 0xE7CD, 0xE7CE,
|
||||
0xE7CF, 0xE7D0, 0xE7D1, 0xE7D2, 0xE7D3, 0xE7D4, 0xE7D5, 0xE7D6,
|
||||
0xE7D7, 0xE7D8, 0xE7D9, 0xE7DA, 0xE7DB, 0xE7DC, 0xE7DD, 0xE7DE,
|
||||
0xE7DF, 0xE7E0, 0xE7E1, 0xE7E2, 0xE7E3, 0xE7E4, 0xE7E5, 0xE7E6,
|
||||
0xE7F4, 0xE7F5, 0xE7F6, 0xE7F7, 0xE7F8, 0xE7F9, 0xE7FA, 0xE7FB,
|
||||
0xE7FC, 0xE7FD, 0xE7FE, 0xE7FF, 0xE800, 0xE801, 0xE802, 0xE803,
|
||||
0xE804, 0xE805, 0xE806, 0xE807, 0xE808, 0xE809, 0xE80A, 0xE80B,
|
||||
0xE80C, 0xE80D, 0xE80E, 0xE80F, 0xE810, 0xE811, 0xE812, 0xE813,
|
||||
0xE814, 0xE816, 0xE817, 0xE818, 0xE81E, 0xE826, 0xE82B, 0xE82C,
|
||||
0xE831, 0xE832, 0xE83B, 0xE843, 0xE854, 0xE855, 0xE864, 0xFE10,
|
||||
0xFE11, 0xFE12, 0xFE13, 0xFE14, 0xFE15, 0xFE16, 0xFE17, 0xFE18,
|
||||
0xFE19,
|
||||
};
|
||||
|
||||
INTERNAL int gbk_wctomb_zint(unsigned int *r, const unsigned int wc);
|
||||
INTERNAL int gb18030_wctomb_zint(unsigned int *r1, unsigned int *r2, const unsigned int wc);
|
||||
INTERNAL int gb18030_utf8(struct zint_symbol *symbol, const unsigned char source[], int *p_length,
|
||||
unsigned int *ddata);
|
||||
INTERNAL int gb18030_utf8_to_eci(const int eci, const unsigned char source[], int *p_length, unsigned int *ddata,
|
||||
const int full_multibyte);
|
||||
/* Multibyte values sorted in Unicode order */
|
||||
static const unsigned short gb18030_2_mb[273] = {
|
||||
0xA8BF, 0xA8BC, 0xA2E3, 0xFE50, 0xFE54, 0xFE57, 0xFE58, 0xFE5D,
|
||||
0xFE5E, 0xFE6B, 0xFE6E, 0xFE71, 0xFE73, 0xFE74, 0xFE75, 0xFE79,
|
||||
0xFE84, 0xA98A, 0xA98B, 0xA98C, 0xA98D, 0xA98E, 0xA98F, 0xA990,
|
||||
0xA991, 0xA992, 0xA993, 0xA994, 0xA995, 0xA989, 0xFE56, 0xFE55,
|
||||
0xFE5A, 0xFE5C, 0xFE5B, 0xFE60, 0xFE5F, 0xFE62, 0xFE65, 0xFE63,
|
||||
0xFE64, 0xFE68, 0xFE69, 0xFE6A, 0xFE6F, 0xFE70, 0xFE72, 0xFE78,
|
||||
0xFE77, 0xFE7A, 0xFE7B, 0xFE7D, 0xFE7C, 0xFE80, 0xFE81, 0xFE82,
|
||||
0xFE83, 0xFE85, 0xFE86, 0xFE87, 0xFE88, 0xFE89, 0xFE8A, 0xFE8B,
|
||||
0xFE8D, 0xFE8C, 0xFE8F, 0xFE8E, 0xFE96, 0xFE93, 0xFE94, 0xFE95,
|
||||
0xFE97, 0xFE92, 0xFE98, 0xFE99, 0xFE9A, 0xFE9B, 0xFE9C, 0xFE9D,
|
||||
0xFE9E, 0xFE9F, 0xFE59, 0xFE61, 0xFE66, 0xFE67, 0xFE6D, 0xFE7E,
|
||||
0xFE90, 0xFEA0, 0xA2AB, 0xA2AC, 0xA2AD, 0xA2AE, 0xA2AF, 0xA2B0,
|
||||
0xA2E4, 0xA2EF, 0xA2F0, 0xA2FD, 0xA2FE, 0xA4F4, 0xA4F5, 0xA4F6,
|
||||
0xA4F7, 0xA4F8, 0xA4F9, 0xA4FA, 0xA4FB, 0xA4FC, 0xA4FD, 0xA4FE,
|
||||
0xA5F7, 0xA5F8, 0xA5F9, 0xA5FA, 0xA5FB, 0xA5FC, 0xA5FD, 0xA5FE,
|
||||
0xA6B9, 0xA6BA, 0xA6BB, 0xA6BC, 0xA6BD, 0xA6BE, 0xA6BF, 0xA6C0,
|
||||
0xA6D9, 0xA6DA, 0xA6DB, 0xA6DC, 0xA6DD, 0xA6DE, 0xA6DF, 0xA6EC,
|
||||
0xA6ED, 0xA6F3, 0xA6F6, 0xA6F7, 0xA6F8, 0xA6F9, 0xA6FA, 0xA6FB,
|
||||
0xA6FC, 0xA6FD, 0xA6FE, 0xA7C2, 0xA7C3, 0xA7C4, 0xA7C5, 0xA7C6,
|
||||
0xA7C7, 0xA7C8, 0xA7C9, 0xA7CA, 0xA7CB, 0xA7CC, 0xA7CD, 0xA7CE,
|
||||
0xA7CF, 0xA7D0, 0xA7F2, 0xA7F3, 0xA7F4, 0xA7F5, 0xA7F6, 0xA7F7,
|
||||
0xA7F8, 0xA7F9, 0xA7FA, 0xA7FB, 0xA7FC, 0xA7FD, 0xA7FE, 0xA896,
|
||||
0xA897, 0xA898, 0xA899, 0xA89A, 0xA89B, 0xA89C, 0xA89D, 0xA89E,
|
||||
0xA89F, 0xA8A0, 0xA8C1, 0xA8C2, 0xA8C3, 0xA8C4, 0xA8EA, 0xA8EB,
|
||||
0xA8EC, 0xA8ED, 0xA8EE, 0xA8EF, 0xA8F0, 0xA8F1, 0xA8F2, 0xA8F3,
|
||||
0xA8F4, 0xA8F5, 0xA8F6, 0xA8F7, 0xA8F8, 0xA8F9, 0xA8FA, 0xA8FB,
|
||||
0xA8FC, 0xA8FD, 0xA8FE, 0xA958, 0xA95B, 0xA95D, 0xA95E, 0xA95F,
|
||||
0xA997, 0xA998, 0xA999, 0xA99A, 0xA99B, 0xA99C, 0xA99D, 0xA99E,
|
||||
0xA99F, 0xA9A0, 0xA9A1, 0xA9A2, 0xA9A3, 0xA9F0, 0xA9F1, 0xA9F2,
|
||||
0xA9F3, 0xA9F4, 0xA9F5, 0xA9F6, 0xA9F7, 0xA9F8, 0xA9F9, 0xA9FA,
|
||||
0xA9FB, 0xA9FC, 0xA9FD, 0xA9FE, 0xD7FA, 0xD7FB, 0xD7FC, 0xD7FD,
|
||||
0xD7FE, 0xFE51, 0xFE52, 0xFE53, 0xFE59, 0xFE61, 0xFE66, 0xFE67,
|
||||
0xFE6C, 0xFE6D, 0xFE76, 0xFE7E, 0xFE90, 0xFE91, 0xFEA0, 0xA6D9,
|
||||
0xA6DB, 0xA6DA, 0xA6DC, 0xA6DD, 0xA6DE, 0xA6DF, 0xA6EC, 0xA6ED,
|
||||
0xA6F3,
|
||||
};
|
||||
|
||||
INTERNAL void gb18030_cpy(const unsigned char source[], int *p_length, unsigned int *ddata,
|
||||
const int full_multibyte);
|
||||
INTERNAL void gb18030_cpy_segs(struct zint_seg segs[], const int seg_count, unsigned int *ddata,
|
||||
const int full_multibyte);
|
||||
/* End Unicode codepoints of blocks mapping consecutively to 4-byte multibyte blocks */
|
||||
static const unsigned short gb18030_4_u_e[206] = {
|
||||
0x00A3, 0x00A6, 0x00AF, 0x00B6, 0x00D6, 0x00DF, 0x00E7, 0x00EB,
|
||||
0x00F1, 0x00F6, 0x00F8, 0x00FB, 0x0100, 0x0112, 0x011A, 0x012A,
|
||||
0x0143, 0x0147, 0x014C, 0x016A, 0x01CD, 0x01CF, 0x01D1, 0x01D3,
|
||||
0x01D5, 0x01D7, 0x01D9, 0x01DB, 0x01F8, 0x0250, 0x0260, 0x02C6,
|
||||
0x02C8, 0x02D8, 0x0390, 0x03A2, 0x03B0, 0x03C2, 0x0400, 0x040F,
|
||||
0x0450, 0x200F, 0x2012, 0x2017, 0x201B, 0x2024, 0x202F, 0x2031,
|
||||
0x2034, 0x203A, 0x20AB, 0x2102, 0x2104, 0x2108, 0x2115, 0x2120,
|
||||
0x215F, 0x216F, 0x218F, 0x2195, 0x2207, 0x220E, 0x2210, 0x2214,
|
||||
0x2219, 0x221C, 0x2222, 0x2224, 0x2226, 0x222D, 0x2233, 0x223C,
|
||||
0x2247, 0x224B, 0x2251, 0x225F, 0x2263, 0x226D, 0x2294, 0x2298,
|
||||
0x22A4, 0x22BE, 0x2311, 0x245F, 0x2473, 0x24FF, 0x254F, 0x2580,
|
||||
0x2592, 0x259F, 0x25B1, 0x25BB, 0x25C5, 0x25CA, 0x25CD, 0x25E1,
|
||||
0x2604, 0x2608, 0x263F, 0x2641, 0x2E80, 0x2E83, 0x2E87, 0x2E8A,
|
||||
0x2E96, 0x2EA6, 0x2EA9, 0x2EAD, 0x2EB2, 0x2EB5, 0x2EBA, 0x2EC9,
|
||||
0x2FEF, 0x2FFF, 0x3004, 0x301C, 0x3020, 0x303D, 0x3040, 0x309A,
|
||||
0x30A0, 0x30FB, 0x3104, 0x321F, 0x3230, 0x32A2, 0x338D, 0x339B,
|
||||
0x33A0, 0x33C3, 0x33CD, 0x33D0, 0x33D4, 0x3446, 0x3472, 0x359D,
|
||||
0x360D, 0x3619, 0x3917, 0x396D, 0x39CE, 0x39DE, 0x3A72, 0x3B4D,
|
||||
0x3C6D, 0x3CDF, 0x4055, 0x415E, 0x4336, 0x43AB, 0x43B0, 0x43DC,
|
||||
0x44D5, 0x464B, 0x4660, 0x4722, 0x4728, 0x477B, 0x478C, 0x4946,
|
||||
0x4979, 0x497C, 0x4981, 0x4984, 0x499A, 0x499E, 0x49B5, 0x4C76,
|
||||
0x4C9E, 0x4D12, 0x4DAD, 0x4DFF, 0xD7FF, 0xE76C, 0xE7C8, 0xE7F3,
|
||||
0xE815, 0xE81D, 0xE825, 0xE82A, 0xE830, 0xE83A, 0xE842, 0xE853,
|
||||
0xE863, 0xF92B, 0xF978, 0xF994, 0xF9E6, 0xF9F0, 0xFA0B, 0xFA10,
|
||||
0xFA12, 0xFA17, 0xFA1E, 0xFA22, 0xFA26, 0xFE2F, 0xFE32, 0xFE48,
|
||||
0xFE53, 0xFE58, 0xFE67, 0xFF00, 0xFFDF, 0xFFFF,
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
/* Cumulative gaps between Unicode blocks mapping consecutively to 4-byte multibyte blocks,
|
||||
used to adjust multibyte offsets */
|
||||
static const unsigned short gb18030_4_mb_o[206] = {
|
||||
0, 1, 3, 5, 6, 7, 9, 12,
|
||||
14, 16, 17, 19, 20, 21, 22, 23,
|
||||
24, 25, 26, 27, 28, 29, 30, 31,
|
||||
32, 33, 34, 35, 36, 37, 38, 39,
|
||||
40, 43, 44, 61, 68, 85, 92, 93,
|
||||
157, 158, 159, 163, 165, 167, 169, 170,
|
||||
172, 173, 174, 175, 176, 177, 178, 179,
|
||||
180, 192, 202, 206, 210, 211, 212, 213,
|
||||
214, 215, 219, 220, 221, 226, 227, 231,
|
||||
232, 233, 234, 235, 237, 241, 243, 244,
|
||||
245, 246, 247, 248, 258, 298, 374, 410,
|
||||
425, 428, 430, 432, 434, 436, 437, 439,
|
||||
443, 445, 446, 447, 448, 449, 450, 451,
|
||||
453, 454, 455, 456, 457, 458, 460, 461,
|
||||
462, 474, 478, 497, 499, 508, 509, 592,
|
||||
596, 682, 685, 722, 732, 733, 734, 736,
|
||||
739, 740, 741, 742, 744, 745, 746, 747,
|
||||
748, 749, 750, 751, 752, 754, 755, 756,
|
||||
757, 758, 759, 760, 761, 762, 763, 764,
|
||||
765, 766, 767, 768, 769, 770, 771, 772,
|
||||
773, 774, 775, 777, 779, 780, 781, 783,
|
||||
784, 789, 796, 797, 21699, 25647, 25738, 25768,
|
||||
25801, 25804, 25805, 25806, 25808, 25810, 25811, 25812,
|
||||
25814, 25815, 25816, 25817, 25818, 25819, 25820, 25824,
|
||||
25825, 25827, 25828, 25831, 25833, 25836, 25838, 25856,
|
||||
25866, 25870, 25884, 25888, 25982, 25988,
|
||||
};
|
||||
|
||||
/* vim: set ts=4 sw=4 et : */
|
||||
#endif /* Z_GB18030_H */
|
||||
|
1645
backend/gb2312.c
1645
backend/gb2312.c
File diff suppressed because it is too large
Load Diff
1421
backend/gb2312.h
1421
backend/gb2312.h
File diff suppressed because it is too large
Load Diff
2202
backend/gbk.h
Normal file
2202
backend/gbk.h
Normal file
File diff suppressed because it is too large
Load Diff
@ -39,7 +39,6 @@
|
||||
#include "common.h"
|
||||
#include "reedsol.h"
|
||||
#include "gridmtx.h"
|
||||
#include "gb2312.h"
|
||||
#include "eci.h"
|
||||
|
||||
static const char EUROPIUM[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ";
|
||||
|
@ -39,8 +39,6 @@
|
||||
#include "common.h"
|
||||
#include "reedsol.h"
|
||||
#include "hanxin.h"
|
||||
#include "gb2312.h"
|
||||
#include "gb18030.h"
|
||||
#include "eci.h"
|
||||
#include <assert.h>
|
||||
|
||||
|
3690
backend/ksx1001.h
3690
backend/ksx1001.h
File diff suppressed because it is too large
Load Diff
@ -36,7 +36,6 @@
|
||||
#include "common.h"
|
||||
#include <stdio.h>
|
||||
#include "eci.h"
|
||||
#include "sjis.h"
|
||||
#include "qr.h"
|
||||
#include "reedsol.h"
|
||||
#include <assert.h>
|
||||
|
1613
backend/sjis.c
1613
backend/sjis.c
File diff suppressed because it is too large
Load Diff
1303
backend/sjis.h
1303
backend/sjis.h
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
/*
|
||||
libzint - the open source barcode library
|
||||
Copyright (C) 2021 Robin Stuart <rstuart114@gmail.com>
|
||||
Copyright (C) 2021-2022 Robin Stuart <rstuart114@gmail.com>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
@ -27,50 +27,119 @@
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
*/
|
||||
/* vim: set ts=4 sw=4 et : */
|
||||
|
||||
#include "testcommon.h"
|
||||
#include "test_big5_tab.h"
|
||||
#include "../big5.h"
|
||||
/* For local "private" testing using previous libiconv adaptation, not included for licensing reasons */
|
||||
//#define TEST_JUST_SAY_GNO
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
#include "../just_say_gno/big5_gnu.h"
|
||||
#endif
|
||||
|
||||
INTERNAL int u_big5_test(const unsigned int u, unsigned char *dest);
|
||||
|
||||
// Version of `u_big5()` taking unsigned int destination for backward-compatible testing
|
||||
static int u_big5_int(unsigned int u, unsigned int *d) {
|
||||
unsigned char dest[2];
|
||||
int ret = u_big5_test(u, dest);
|
||||
if (ret) {
|
||||
*d = ret == 1 ? dest[0] : ((dest[0] << 8) | dest[1]);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
// As control convert to Big5 using simple table generated from https://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT plus simple processing
|
||||
static int big5_wctomb_zint2(unsigned int *r, unsigned int wc) {
|
||||
static int u_big5_int2(unsigned int u, unsigned int *dest) {
|
||||
int tab_length = ARRAY_SIZE(test_big5_tab);
|
||||
int start_i = test_big5_tab_ind[wc >> 10];
|
||||
int start_i = test_big5_tab_ind[u >> 10];
|
||||
int end_i = start_i + 0x800 > tab_length ? tab_length : start_i + 0x800;
|
||||
int i;
|
||||
if (wc < 0x80) {
|
||||
return 0;
|
||||
if (u < 0x80) {
|
||||
*dest = u;
|
||||
return 1;
|
||||
}
|
||||
for (i = start_i; i < end_i; i += 2) {
|
||||
if (test_big5_tab[i + 1] == wc) {
|
||||
*r = test_big5_tab[i];
|
||||
return *r > 0xFF ? 2 : 1;
|
||||
if (test_big5_tab[i + 1] == u) {
|
||||
*dest = test_big5_tab[i];
|
||||
return *dest > 0xFF ? 2 : 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void test_big5_wctomb_zint(void) {
|
||||
#include <time.h>
|
||||
|
||||
#define TEST_PERF_TIME(arg) (((arg) * 1000.0) / CLOCKS_PER_SEC)
|
||||
#define TEST_PERF_RATIO(a1, a2) (a2 ? TEST_PERF_TIME(a1) / TEST_PERF_TIME(a2) : 0)
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
#define TEST_INT_PERF_ITERATIONS 100
|
||||
#endif
|
||||
|
||||
static void test_u_big5_int(int debug) {
|
||||
|
||||
unsigned int i;
|
||||
int ret, ret2;
|
||||
unsigned int val, val2;
|
||||
|
||||
testStart("test_big5_wctomb_zint");
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
int j;
|
||||
clock_t start;
|
||||
clock_t total = 0, total_gno = 0;
|
||||
#else
|
||||
(void)debug;
|
||||
#endif
|
||||
|
||||
testStart("test_u_big5_int");
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
if ((debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
|
||||
printf("test_u_big5_int perf iterations: %d\n", TEST_INT_PERF_ITERATIONS);
|
||||
}
|
||||
#endif
|
||||
|
||||
for (i = 0; i < 0xFFFE; i++) {
|
||||
if (i >= 0xD800 && i < 0xE000) { // UTF-16 surrogates
|
||||
continue;
|
||||
}
|
||||
val = val2 = 0;
|
||||
ret = big5_wctomb_zint(&val, i);
|
||||
ret2 = big5_wctomb_zint2(&val2, i);
|
||||
ret = u_big5_int(i, &val);
|
||||
ret2 = u_big5_int2(i, &val2);
|
||||
assert_equal(ret, ret2, "i:%d 0x%04X ret %d != ret2 %d, val 0x%04X, val2 0x%04X\n", (int) i, i, ret, ret2, val, val2);
|
||||
if (ret2) {
|
||||
assert_equal(val, val2, "i:%d 0x%04X val 0x%04X != val2 0x%04X\n", (int) i, i, val, val2);
|
||||
}
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
if (!(debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
|
||||
val2 = 0;
|
||||
ret2 = big5_wctomb_zint(&val2, i);
|
||||
} else {
|
||||
for (j = 0; j < TEST_INT_PERF_ITERATIONS; j++) {
|
||||
val = val2 = 0;
|
||||
|
||||
start = clock();
|
||||
ret = u_big5_int(i, &val);
|
||||
total += clock() - start;
|
||||
|
||||
start = clock();
|
||||
ret2 = big5_wctomb_zint(&val2, i);
|
||||
total_gno += clock() - start;
|
||||
}
|
||||
}
|
||||
|
||||
assert_equal(ret, ret2, "i:%d 0x%04X ret %d != ret2 %d, val 0x%04X, val2 0x%04X\n", (int) i, i, ret, ret2, val, val2);
|
||||
if (ret2) {
|
||||
assert_equal(val, val2, "i:%d 0x%04X val 0x%04X != val2 0x%04X\n", (int) i, i, val, val2);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
if ((debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
|
||||
printf("test_u_big5_int perf totals: new % 8gms, gno % 8gms ratio %g\n",
|
||||
TEST_PERF_TIME(total), TEST_PERF_TIME(total_gno), TEST_PERF_RATIO(total, total_gno));
|
||||
}
|
||||
#endif
|
||||
|
||||
testFinish();
|
||||
}
|
||||
@ -92,7 +161,7 @@ static int big5_utf8(struct zint_symbol *symbol, const unsigned char source[], i
|
||||
}
|
||||
|
||||
for (i = 0, length = *p_length; i < length; i++) {
|
||||
if (!big5_wctomb_zint(b5data + i, utfdata[i])) {
|
||||
if (!u_big5_int(utfdata[i], b5data + i)) {
|
||||
strcpy(symbol->errtxt, "800: Invalid character in input data");
|
||||
return ZINT_ERROR_INVALID_DATA;
|
||||
}
|
||||
@ -150,7 +219,7 @@ static void test_big5_utf8(int index) {
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
testFunction funcs[] = { /* name, func, has_index, has_generate, has_debug */
|
||||
{ "test_big5_wctomb_zint", test_big5_wctomb_zint, 0, 0, 0 },
|
||||
{ "test_u_big5_int", test_u_big5_int, 0, 0, 1 },
|
||||
{ "test_big5_utf8", test_big5_utf8, 1, 0, 0 },
|
||||
};
|
||||
|
||||
@ -160,3 +229,5 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* vim: set ts=4 sw=4 et : */
|
||||
|
@ -790,8 +790,11 @@ static void test_utf8_to_eci_utf16be(void) {
|
||||
/* 7*/ { "\355\277\277", -1, ZINT_ERROR_INVALID_DATA, -1, NULL }, // U+DFFF (edbfbf) surrogate half not allowed
|
||||
/* 8*/ { "\356\200\200", -1, 0, 2, "\340\000" }, // U+E000 (ee8080)
|
||||
/* 9*/ { "\360\220\200\200", -1, 0, 4, "\330\000\334\000" }, // U+10000 maps to surrogate pair
|
||||
/* 10*/ { "\364\217\277\277", -1, 0, 4, "\333\377\337\377" }, // U+10FFFF maps to surrogate pair
|
||||
/* 11*/ { "\364\220\200\200", -1, ZINT_ERROR_INVALID_DATA, -1, NULL }, // Non-Unicode 0x110000 not allowed
|
||||
/* 10*/ { "\360\220\217\277", -1, 0, 4, "\330\000\337\377" }, // U+103FF maps to surrogate pair
|
||||
/* 11*/ { "\364\200\200\200", -1, 0, 4, "\333\300\334\000" }, // U+100000 maps to surrogate pair
|
||||
/* 12*/ { "\364\217\260\200", -1, 0, 4, "\333\377\334\000" }, // U+10FC00 maps to surrogate pair
|
||||
/* 13*/ { "\364\217\277\277", -1, 0, 4, "\333\377\337\377" }, // U+10FFFF maps to surrogate pair
|
||||
/* 14*/ { "\364\220\200\200", -1, ZINT_ERROR_INVALID_DATA, -1, NULL }, // Non-Unicode 0x110000 not allowed
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
int i, length, ret;
|
||||
@ -848,8 +851,11 @@ static void test_utf8_to_eci_utf16le(void) {
|
||||
/* 7*/ { "\355\277\277", -1, ZINT_ERROR_INVALID_DATA, -1, NULL }, // U+DFFF (edbfbf) surrogate half not allowed
|
||||
/* 8*/ { "\356\200\200", -1, 0, 2, "\000\340" }, // U+E000 (ee8080)
|
||||
/* 9*/ { "\360\220\200\200", -1, 0, 4, "\000\330\000\334" }, // U+10000 maps to surrogate pair
|
||||
/* 10*/ { "\364\217\277\277", -1, 0, 4, "\377\333\377\337" }, // U+10FFFF maps to surrogate pair
|
||||
/* 11*/ { "\364\220\200\200", -1, ZINT_ERROR_INVALID_DATA, -1, NULL }, // Non-Unicode 0x110000 not allowed
|
||||
/* 10*/ { "\360\220\217\277", -1, 0, 4, "\000\330\377\337" }, // U+103FF maps to surrogate pair
|
||||
/* 11*/ { "\364\200\200\200", -1, 0, 4, "\300\333\000\334" }, // U+100000 maps to surrogate pair
|
||||
/* 12*/ { "\364\217\260\200", -1, 0, 4, "\377\333\000\334" }, // U+10FC00 maps to surrogate pair
|
||||
/* 13*/ { "\364\217\277\277", -1, 0, 4, "\377\333\377\337" }, // U+10FFFF maps to surrogate pair
|
||||
/* 14*/ { "\364\220\200\200", -1, ZINT_ERROR_INVALID_DATA, -1, NULL }, // Non-Unicode 0x110000 not allowed
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
int i, length, ret;
|
||||
|
@ -30,105 +30,123 @@
|
||||
|
||||
#include "testcommon.h"
|
||||
#include "test_gb18030_tab.h"
|
||||
#include "../gb18030.h"
|
||||
#include "test_gbk_tab.h"
|
||||
#include "../eci.h"
|
||||
/* For local "private" testing using previous libiconv adaptation, not included for licensing reasons */
|
||||
//#define TEST_JUST_SAY_GNO
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
#include "../just_say_gno/gb18030_gnu.c"
|
||||
#include "../just_say_gno/gb2312_gnu.c"
|
||||
#endif
|
||||
|
||||
INTERNAL int u_gb18030_int_test(const unsigned int u, unsigned int *dest1, unsigned int *dest2);
|
||||
|
||||
// As control convert to GB 18030 using table generated from GB18030.TXT plus simple processing.
|
||||
// The version of GB18030.TXT is libiconv-1.11/GB18030.TXT taken from https://haible.de/bruno/charsets/conversion-tables/GB18030.html
|
||||
// The generated file backend/tests/test_gb18030_tab.h does not include U+10000..10FFFF codepoints to save space.
|
||||
// See also backend/tests/tools/data/GB18030.TXT.README and backend/tests/tools/gen_test_tab.php.
|
||||
static int gb18030_wctomb_zint2(unsigned int *r1, unsigned int *r2, unsigned int wc) {
|
||||
static int u_gb18030_int2(unsigned int u, unsigned int *dest1, unsigned int *dest2) {
|
||||
unsigned int c;
|
||||
int tab_length, start_i, end_i;
|
||||
int i;
|
||||
|
||||
// GB18030 two-byte extension (libiconv-1.16/lib/gb18030ext.h)
|
||||
if (wc == 0x1E3F) { // GB 18030-2005 change, was PUA U+E7C7 below, see Table 3-39, p.111, Lunde 2nd ed.
|
||||
*r1 = 0xA8BC;
|
||||
if (u == 0x1E3F) { // GB 18030-2005 change, was PUA U+E7C7 below, see Table 3-39, p.111, Lunde 2nd ed.
|
||||
*dest1 = 0xA8BC;
|
||||
return 2;
|
||||
}
|
||||
// GB18030 four-byte extension (libiconv-1.16/lib/gb18030uni.h)
|
||||
if (wc == 0xE7C7) { // PUA
|
||||
*r1 = 0x8135;
|
||||
*r2 = 0xF437;
|
||||
if (u == 0xE7C7) { // PUA
|
||||
*dest1 = 0x8135;
|
||||
*dest2 = 0xF437;
|
||||
return 4;
|
||||
}
|
||||
// GB18030 two-byte extension (libiconv-1.16/lib/gb18030ext.h)
|
||||
if (wc >= 0x9FB4 && wc <= 0x9FBB) { // GB 18030-2005 change, were PUA, see Table 3-37, p.108, Lunde 2nd ed.
|
||||
if (wc == 0x9FB4) {
|
||||
*r1 = 0xFE59;
|
||||
} else if (wc == 0x9FB5) {
|
||||
*r1 = 0xFE61;
|
||||
} else if (wc == 0x9FB6 || wc == 0x9FB7) {
|
||||
*r1 = 0xFE66 + (wc - 0x9FB6);
|
||||
} else if (wc == 0x9FB8) {
|
||||
*r1 = 0xFE6D;
|
||||
} else if (wc == 0x9FB9) {
|
||||
*r1 = 0xFE7E;
|
||||
} else if (wc == 0x9FBA) {
|
||||
*r1 = 0xFE90;
|
||||
if (u >= 0x9FB4 && u <= 0x9FBB) { // GB 18030-2005 change, were PUA, see Table 3-37, p.108, Lunde 2nd ed.
|
||||
if (u == 0x9FB4) {
|
||||
*dest1 = 0xFE59;
|
||||
} else if (u == 0x9FB5) {
|
||||
*dest1 = 0xFE61;
|
||||
} else if (u == 0x9FB6 || u == 0x9FB7) {
|
||||
*dest1 = 0xFE66 + (u - 0x9FB6);
|
||||
} else if (u == 0x9FB8) {
|
||||
*dest1 = 0xFE6D;
|
||||
} else if (u == 0x9FB9) {
|
||||
*dest1 = 0xFE7E;
|
||||
} else if (u == 0x9FBA) {
|
||||
*dest1 = 0xFE90;
|
||||
} else {
|
||||
*r1 = 0xFEA0;
|
||||
*dest1 = 0xFEA0;
|
||||
}
|
||||
return 2;
|
||||
}
|
||||
// GB18030 two-byte extension (libiconv-1.16/lib/gb18030ext.h)
|
||||
if (wc >= 0xFE10 && wc <= 0xFE19) { // GB 18030-2005 change, were PUA, see Table 3-37, p.108, Lunde 2nd ed.
|
||||
if (wc == 0xFE10) {
|
||||
*r1 = 0xA6D9;
|
||||
} else if (wc == 0xFE11) {
|
||||
*r1 = 0xA6DB;
|
||||
} else if (wc == 0xFE12) {
|
||||
*r1 = 0xA6DA;
|
||||
} else if (wc >= 0xFE13 && wc <= 0xFE16) {
|
||||
*r1 = 0xA6DC + (wc - 0xFE13);
|
||||
} else if (wc == 0xFE17 || wc == 0xFE18) {
|
||||
*r1 = 0xA6EC + (wc - 0xFE17);
|
||||
if (u >= 0xFE10 && u <= 0xFE19) { // GB 18030-2005 change, were PUA, see Table 3-37, p.108, Lunde 2nd ed.
|
||||
if (u == 0xFE10) {
|
||||
*dest1 = 0xA6D9;
|
||||
} else if (u == 0xFE11) {
|
||||
*dest1 = 0xA6DB;
|
||||
} else if (u == 0xFE12) {
|
||||
*dest1 = 0xA6DA;
|
||||
} else if (u >= 0xFE13 && u <= 0xFE16) {
|
||||
*dest1 = 0xA6DC + (u - 0xFE13);
|
||||
} else if (u == 0xFE17 || u == 0xFE18) {
|
||||
*dest1 = 0xA6EC + (u - 0xFE17);
|
||||
} else {
|
||||
*r1 = 0xA6F3;
|
||||
*dest1 = 0xA6F3;
|
||||
}
|
||||
return 2;
|
||||
}
|
||||
// GB18030 four-byte extension (libiconv-1.16/lib/gb18030uni.h)
|
||||
if (wc >= 0xFE1A && wc <= 0xFE2F) { // These are Vertical Forms (U+FE1A..FE1F unassigned) and Combining Half Marks (U+FE20..FE2F)
|
||||
if (wc >= 0xFE1A && wc <= 0xFE1D) {
|
||||
c = 0x84318336 + (wc - 0xFE1A);
|
||||
} else if (wc >= 0xFE1E && wc <= 0xFE27) {
|
||||
c = 0x84318430 + (wc - 0xFE1E);
|
||||
if (u >= 0xFE1A && u <= 0xFE2F) { // These are Vertical Forms (U+FE1A..FE1F unassigned) and Combining Half Marks (U+FE20..FE2F)
|
||||
if (u >= 0xFE1A && u <= 0xFE1D) {
|
||||
c = 0x84318336 + (u - 0xFE1A);
|
||||
} else if (u >= 0xFE1E && u <= 0xFE27) {
|
||||
c = 0x84318430 + (u - 0xFE1E);
|
||||
} else {
|
||||
c = 0x84318530 + (wc - 0xFE28);
|
||||
c = 0x84318530 + (u - 0xFE28);
|
||||
}
|
||||
*r1 = c >> 16;
|
||||
*r2 = c & 0xFFFF;
|
||||
*dest1 = c >> 16;
|
||||
*dest2 = c & 0xFFFF;
|
||||
return 4;
|
||||
}
|
||||
// GB18030 (libiconv-1.16/lib/gb18030.h)
|
||||
// Code set 3 (Unicode U+10000..U+10FFFF)
|
||||
if (wc >= 0x10000 /*&& wc < 0x10400*/) { // Not being called for U+10400..U+10FFFF
|
||||
c = wc - 0x10000;
|
||||
*r1 = 0x9030;
|
||||
*r2 = 0x8130 + (c % 10) + 0x100 * (c / 10);
|
||||
if (u >= 0x10000 /*&& u < 0x10400*/) { // Not being called for U+10400..U+10FFFF
|
||||
c = u - 0x10000;
|
||||
*dest1 = 0x9030;
|
||||
*dest2 = 0x8130 + (c % 10) + 0x100 * (c / 10);
|
||||
return 4;
|
||||
}
|
||||
|
||||
tab_length = ARRAY_SIZE(test_gb18030_tab);
|
||||
start_i = test_gb18030_tab_ind[wc >> 10];
|
||||
start_i = test_gb18030_tab_ind[u >> 10];
|
||||
end_i = start_i + 0x800 > tab_length ? tab_length : start_i + 0x800;
|
||||
for (i = start_i; i < end_i; i += 2) {
|
||||
if (test_gb18030_tab[i + 1] == wc) {
|
||||
if (test_gb18030_tab[i + 1] == u) {
|
||||
c = test_gb18030_tab[i];
|
||||
if (c <= 0xFFFF) {
|
||||
*r1 = c;
|
||||
*dest1 = c;
|
||||
return c <= 0xFF ? 1 : 2;
|
||||
}
|
||||
*r1 = c >> 16;
|
||||
*r2 = c & 0xFFFF;
|
||||
*dest1 = c >> 16;
|
||||
*dest2 = c & 0xFFFF;
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void test_gb18030_wctomb_zint(void) {
|
||||
#include <time.h>
|
||||
|
||||
#define TEST_PERF_TIME(arg) (((arg) * 1000.0) / CLOCKS_PER_SEC)
|
||||
#define TEST_PERF_RATIO(a1, a2) (a2 ? TEST_PERF_TIME(a1) / TEST_PERF_TIME(a2) : 0)
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
#define TEST_INT_PERF_ITERATIONS 250
|
||||
#endif
|
||||
|
||||
static void test_u_gb18030_int(int debug) {
|
||||
|
||||
int ret, ret2;
|
||||
unsigned int val1_1, val1_2, val2_1, val2_2;
|
||||
@ -141,34 +159,80 @@ static void test_gb18030_wctomb_zint(void) {
|
||||
0xFE51, 0xFE52, 0xFE53, 0xFE6C, 0xFE76, 0xFE91
|
||||
};
|
||||
|
||||
testStart("test_gb18030_wctomb_zint");
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
int j;
|
||||
clock_t start;
|
||||
clock_t total = 0, total_gno = 0;
|
||||
#else
|
||||
(void)debug;
|
||||
#endif
|
||||
|
||||
testStart("test_u_gb18030_int");
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
if ((debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
|
||||
printf("test_u_gb18030_int perf iterations: %d\n", TEST_INT_PERF_ITERATIONS);
|
||||
}
|
||||
#endif
|
||||
|
||||
for (i = 0; i < 0x10400; i++) { // Don't bother with U+10400..U+10FFFF, programmatically filled
|
||||
if (i >= 0xD800 && i <= 0xDFFF) { // UTF-16 surrogates
|
||||
continue;
|
||||
}
|
||||
val1_1 = val1_2 = val2_1 = val2_2 = 0;
|
||||
ret = gb18030_wctomb_zint(&val1_1, &val1_2, i);
|
||||
ret2 = gb18030_wctomb_zint2(&val2_1, &val2_2, i);
|
||||
ret = u_gb18030_int_test(i, &val1_1, &val1_2);
|
||||
ret2 = u_gb18030_int2(i, &val2_1, &val2_2);
|
||||
assert_equal(ret, ret2, "i:%d 0x%04X ret %d != ret2 %d, val1_1 0x%04X, val2_1 0x%04X, val1_2 0x%04X, val2_2 0x%04X\n", (int) i, i, ret, ret2, val1_1, val2_1, val1_2, val2_2);
|
||||
if (ret2) {
|
||||
assert_equal(val1_1, val2_1, "i:%d 0x%04X val1_1 0x%04X != val2_1 0x%04X\n", (int) i, i, val1_1, val2_1);
|
||||
assert_equal(val1_2, val2_2, "i:%d 0x%04X val1_2 0x%04X != val2_2 0x%04X\n", (int) i, i, val1_2, val2_2);
|
||||
}
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
if (!(debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
|
||||
val2_1 = val2_2 = 0;
|
||||
ret2 = gb18030_wctomb_zint(&val2_1, &val2_2, i);
|
||||
} else {
|
||||
for (j = 0; j < TEST_INT_PERF_ITERATIONS; j++) {
|
||||
val1_1 = val1_2 = val2_1 = val2_2 = 0;
|
||||
|
||||
start = clock();
|
||||
ret = u_gb18030_int_test(i, &val1_1, &val1_2);
|
||||
total += clock() - start;
|
||||
|
||||
start = clock();
|
||||
ret2 = gb18030_wctomb_zint(&val2_1, &val2_2, i);
|
||||
total_gno += clock() - start;
|
||||
}
|
||||
}
|
||||
|
||||
assert_equal(ret, ret2, "i:%d 0x%04X ret %d != ret2 %d, val1_1 0x%04X, val2_1 0x%04X, val1_2 0x%04X, val2_2 0x%04X\n", (int) i, i, ret, ret2, val1_1, val2_1, val1_2, val2_2);
|
||||
if (ret2) {
|
||||
assert_equal(val1_1, val2_1, "i:%d 0x%04X val1_1 0x%04X != val2_1 0x%04X\n", (int) i, i, val1_1, val2_1);
|
||||
assert_equal(val1_2, val2_2, "i:%d 0x%04X val1_2 0x%04X != val2_2 0x%04X\n", (int) i, i, val1_2, val2_2);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// u_gb18030() assumes valid Unicode so now returns a nonsense value here
|
||||
val1_1 = val1_2 = 0;
|
||||
ret = gb18030_wctomb_zint(&val1_1, &val1_2, 0x110000); /* Invalid Unicode codepoint */
|
||||
assert_zero(ret, "0x110000 ret %d != 0, val1_1 0x%04X, val1_2 0x%04X\n", ret, val1_1, val1_2);
|
||||
ret = u_gb18030_int_test(0x110000, &val1_1, &val1_2); /* Invalid Unicode codepoint */
|
||||
assert_equal(ret, 4, "0x110000 ret %d != 4, val1_1 0x%04X, val1_2 0x%04X\n", ret, val1_1, val1_2);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(nonpua_nonbmp); i++) {
|
||||
val1_1 = val1_2 = 0;
|
||||
ret = gb18030_wctomb_zint(&val1_1, &val1_2, nonpua_nonbmp[i]);
|
||||
ret = u_gb18030_int_test(nonpua_nonbmp[i], &val1_1, &val1_2);
|
||||
assert_equal(ret, 2, "i:%d 0x%04X ret %d != 2, val1_1 0x%04X, val1_2 0x%04X\n", (int) i, nonpua_nonbmp[i], ret, val1_1, val1_2);
|
||||
assert_equal(val1_1, nonpua_nonbmp_vals[i], "i:%d 0x%04X val1_1 0x%04X != 0x%04X\n", (int) i, nonpua_nonbmp[i], val1_1, nonpua_nonbmp_vals[i]);
|
||||
assert_zero(val1_2, "i:%d 0x%04X val1_2 0x%04X != 0\n", (int) i, nonpua_nonbmp[i], val1_2);
|
||||
}
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
if ((debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
|
||||
printf("test_u_gb18030_int perf totals: new % 8gms, gno % 8gms ratio %g\n",
|
||||
TEST_PERF_TIME(total), TEST_PERF_TIME(total_gno), TEST_PERF_RATIO(total, total_gno));
|
||||
}
|
||||
#endif
|
||||
|
||||
testFinish();
|
||||
}
|
||||
|
||||
@ -350,6 +414,9 @@ static void test_gb18030_utf8_to_eci(int index) {
|
||||
testFinish();
|
||||
}
|
||||
|
||||
INTERNAL void gb18030_cpy_test(const unsigned char source[], int *p_length, unsigned int *ddata,
|
||||
const int full_multibyte);
|
||||
|
||||
static void test_gb18030_cpy(int index) {
|
||||
|
||||
struct item {
|
||||
@ -390,7 +457,7 @@ static void test_gb18030_cpy(int index) {
|
||||
length = data[i].length == -1 ? (int) strlen(data[i].data) : data[i].length;
|
||||
ret_length = length;
|
||||
|
||||
gb18030_cpy((unsigned char *) data[i].data, &ret_length, gbdata, data[i].full_multibyte);
|
||||
gb18030_cpy_test((unsigned char *) data[i].data, &ret_length, gbdata, data[i].full_multibyte);
|
||||
assert_equal(ret_length, data[i].ret_length, "i:%d ret_length %d != %d\n", i, ret_length, data[i].ret_length);
|
||||
for (j = 0; j < (int) ret_length; j++) {
|
||||
assert_equal(gbdata[j], data[i].expected_gbdata[j], "i:%d gbdata[%d] %04X != %04X\n", i, j, gbdata[j], data[i].expected_gbdata[j]);
|
||||
@ -400,35 +467,22 @@ static void test_gb18030_cpy(int index) {
|
||||
testFinish();
|
||||
}
|
||||
|
||||
/* For testing GBK, to exclude GB 18030 extensions */
|
||||
STATIC_UNLESS_ZINT_TEST int gb18030ext_wctomb(unsigned int *r, const unsigned int wc);
|
||||
STATIC_UNLESS_ZINT_TEST int gb18030uni_wctomb(unsigned int *r1, unsigned int *r2, const unsigned int wc);
|
||||
INTERNAL int u_gbk_int_test(const unsigned int u, unsigned int *dest);
|
||||
|
||||
/* Control for GBK */
|
||||
static int gbk_wctomb_zint2(unsigned int *r, unsigned int wc) {
|
||||
static int u_gbk_int2(unsigned int u, unsigned int *dest) {
|
||||
unsigned int c;
|
||||
int tab_length, start_i, end_i;
|
||||
int i;
|
||||
unsigned int r1, r2;
|
||||
|
||||
if (gb18030ext_wctomb(&r1, wc)) {
|
||||
return 0;
|
||||
}
|
||||
if (wc >= 0xe000 && wc <= 0xe864) {
|
||||
return 0;
|
||||
}
|
||||
if (gb18030uni_wctomb(&r1, &r2, wc)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
tab_length = ARRAY_SIZE(test_gb18030_tab);
|
||||
start_i = test_gb18030_tab_ind[wc >> 10];
|
||||
tab_length = ARRAY_SIZE(test_gbk_tab);
|
||||
start_i = test_gbk_tab_ind[u >> 10];
|
||||
end_i = start_i + 0x800 > tab_length ? tab_length : start_i + 0x800;
|
||||
for (i = start_i; i < end_i; i += 2) {
|
||||
if (test_gb18030_tab[i + 1] == wc) {
|
||||
c = test_gb18030_tab[i];
|
||||
if (test_gbk_tab[i + 1] == u) {
|
||||
c = test_gbk_tab[i];
|
||||
if (c <= 0xFFFF) {
|
||||
*r = c;
|
||||
*dest = c;
|
||||
return c <= 0xFF ? 1 : 2;
|
||||
}
|
||||
return 0;
|
||||
@ -437,24 +491,21 @@ static int gbk_wctomb_zint2(unsigned int *r, unsigned int wc) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void test_gbk_wctomb_zint(void) {
|
||||
static void test_u_gbk_int(void) {
|
||||
|
||||
int ret, ret2;
|
||||
unsigned int val, val2;
|
||||
unsigned int i;
|
||||
|
||||
testStart("test_gbk_wctomb_zint");
|
||||
testStart("test_u_gbk_int");
|
||||
|
||||
for (i = 0; i < 0xFFFE; i++) {
|
||||
if (i < 0x80) { // ASCII is straight through and not dealt with by gbk_wctomb_zint()
|
||||
continue;
|
||||
}
|
||||
if (i >= 0xD800 && i <= 0xDFFF) { // UTF-16 surrogates
|
||||
continue;
|
||||
}
|
||||
val = val2 = 0;
|
||||
ret = gbk_wctomb_zint(&val, i);
|
||||
ret2 = gbk_wctomb_zint2(&val2, i);
|
||||
ret = u_gbk_int_test(i, &val);
|
||||
ret2 = u_gbk_int2(i, &val2);
|
||||
assert_equal(ret, ret2, "i:%d 0x%04X ret %d != ret2 %d, val 0x%04X, val2 0x%04X\n", (int) i, i, ret, ret2, val, val2);
|
||||
if (ret2) {
|
||||
assert_equal(val, val2, "i:%d 0x%04X val 0x%04X != val2 0x%04X\n", (int) i, i, val, val2);
|
||||
@ -464,14 +515,102 @@ static void test_gbk_wctomb_zint(void) {
|
||||
testFinish();
|
||||
}
|
||||
|
||||
#define TEST_PERF_ITER_MILLES 50
|
||||
#define TEST_PERF_ITERATIONS (TEST_PERF_ITER_MILLES * 1000)
|
||||
|
||||
// Not a real test, just performance indicator
|
||||
static void test_perf(int index, int debug) {
|
||||
|
||||
struct item {
|
||||
char *data;
|
||||
int ret;
|
||||
|
||||
char *comment;
|
||||
};
|
||||
struct item data[] = {
|
||||
/* 0*/ { "1234567890", 0, "10 numerics" },
|
||||
/* 1*/ { "条码北京條碼པེ་ཅིང།バーコード바코드", 0, "Small various code pages" },
|
||||
/* 2*/ { "Summer Palace Ticket for 6 June 2015 13:00;2015年6月6日夜01時00分PM頤和園のチケット;2015년6월6일13시오후여름궁전티켓.2015年6月6号下午13:00的颐和园门票;", 0, "Small mixed ASCII/Hanzi" },
|
||||
/* 3*/ { "汉信码标准\015\012中国物品编码中心\015\012北京网路畅想科技发展有限公司\015\012张成海、赵楠、黄燕滨、罗秋科、王毅、张铎、王越\015\012施煜、边峥、修兴强\015\012汉信码标准\015\012中国物品编码中心\015\012北京网路畅想科技发展有限公司", 0, "Bigger mixed" },
|
||||
/* 4*/ { "本标准规定了一种矩阵式二维条码——汉信码的码制以及编译码方法。本标准中对汉信码的码图方案、信息编码方法、纠错编译码算法、信息排布方法、参考译码算法等内容进行了详细的描述,汉信码可高效表示《GB 18030—2000 信息技术 信息交换用汉字编码字符集基本集的扩充》中的汉字信息,并具有数据容量大、抗畸变和抗污损能力强、外观美观等特点,适合于在我国各行业的广泛应用。 测试文本,测试人:施煜,边峥,修兴强,袁娲,测试目的:汉字表示,测试版本:40\015\012", 0, "Bigger mixed" },
|
||||
/* 5*/ { "本标准规定了一种矩阵式二维条码——汉信码的码制以及编译码方法。本标准中对汉信码的码图方案、信息编码方法、纠错编译码算法、信息排布方法、参考译码算法等内容进行了详细的描述,汉信码可高效表示《GB 18030—2000 信息技术 信息交换用汉字编码字符集基本集的扩充》中的汉字信息,并具有数据容量大、抗畸变和抗污损能力强、外观美观等特点,适合于在我国各行业的广泛应用。 测试文本,测试人:施煜,边峥,修兴强,袁娲,测试目的:汉字表示,测试版本:40\015\012本标准规定了一种矩阵式二维条码——汉信码的码制以及编译码方法。本标准中对汉信码的码图方案、信息编码方法、纠错编译码算法、信息排布方法、参考译码算法等内容进行了详细的描述,汉信码可高效表示《GB 18030—2000 信息技术 信息交换用汉字编码字符集基本集的扩充》中的汉字信息,并具有数据容量大、抗畸变和抗污损能力强、外观美观等特点,适合于在我国各行业的广泛应用。 测试文本,测试人:施煜,边峥,修兴强,袁娲,测试目的:汉字表示,测试版本:40\015\012本标准规定了一种矩阵式二维条码——汉信码的码制以及编译码方法。本标准中对汉信码的码图方案、信息编码方法、纠错编译码算法RS、信息排布方法、参考译码算法等内容进行了详细的描述,汉信码可高效表示《GB 18030—2000 信息技术 122", 0, "Medium mixed" },
|
||||
/* 6*/ { "本标准规定了一种矩阵式二维条码——汉信码的码制以及编译码方法。本标准中对汉信码的码图方案、信息编码方法、纠错编译码算法、信息排布方法、参考译码算法等内容进行了详细的描述,汉信码可高效表示《GB 18030—2000 信息技术 信息交换用汉字编码字符集基本集的扩充》中的汉字信息,并具有数据容量大、抗畸变和抗污损能力强、外观美观等特点,适合于在我国各行业的广泛应用。 测试文本,测试人:施煜,边峥,修兴强,袁娲,测试目的:汉字表示,测试版本:84\015\012本标准规定了一种矩阵式二维条码——汉信码的码制以及编译码方法。本标准中对汉信码的码图方案、信息编码方法、纠错编译码算法、信息排布方法、参考译码算法等内容进行了详细的描述,汉信码可高效表示《GB 18030—2000 信息技术 信息交换用汉字编码字符集基本集的扩充》中的汉字信息,并具有数据容量大、抗畸变和抗污损能力强、外观美观等特点,适合于在我国各行业的广泛应用。 测试文本,测试人:施煜,边峥,修兴强,袁娲,测试目的:汉字表示,测试版本:84\015\012本标准规定了一种矩阵式二维条码——汉信码的码制以及编译码方法。本标准中对汉信码的码图方案、信息编码方法、纠错编译码算法、信息排布方法、参考译码算法等内容进行了详细的描述,汉信码可高效表示《GB 18030—2000 信息技术 信息交换用汉字编码字符集基本集的扩充》中的汉字信息,并具有数据容量大、抗畸变和抗污损能力强、外观美观等特点,适合于在我国各行业的广泛应用。 测试文本,测试人:施煜,边峥,修兴强,袁娲,测试目的:汉字表示,测试版本:40本标准规定了一种矩阵式二维条码——汉信码的码制以及编译码方法。本标准中对汉信码的码图方", 0, "Bigger mixed" },
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
int i, length, ret;
|
||||
|
||||
struct zint_symbol symbol = {0};
|
||||
int ret_length, ret_length2;
|
||||
unsigned int ddata[8192];
|
||||
unsigned char dest[8192];
|
||||
int ret2 = 0;
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
unsigned int ddata2[8192];
|
||||
#endif
|
||||
|
||||
clock_t start;
|
||||
clock_t total = 0, total_gno = 0, total_eci = 0;
|
||||
clock_t diff, diff_gno, diff_eci;
|
||||
int comment_max = 0;
|
||||
|
||||
if (!(debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < data_size; i++) if ((int) strlen(data[i].comment) > comment_max) comment_max = (int) strlen(data[i].comment);
|
||||
|
||||
printf("Iterations %d\n", TEST_PERF_ITERATIONS);
|
||||
|
||||
for (i = 0; i < data_size; i++) {
|
||||
int j;
|
||||
|
||||
if (index != -1 && i != index) continue;
|
||||
|
||||
length = (int) strlen(data[i].data);
|
||||
|
||||
diff = diff_gno = diff_eci = 0;
|
||||
|
||||
for (j = 0; j < TEST_PERF_ITERATIONS; j++) {
|
||||
ret_length = ret_length2 = length;
|
||||
|
||||
start = clock();
|
||||
ret = gb18030_utf8(&symbol, (unsigned char *) data[i].data, &ret_length, ddata);
|
||||
diff += clock() - start;
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
start = clock();
|
||||
ret2 = gb18030_utf8_wctomb(&symbol, (unsigned char *) data[i].data, &ret_length2, ddata2);
|
||||
diff_gno += clock() - start;
|
||||
#endif
|
||||
ret_length = length;
|
||||
|
||||
start = clock();
|
||||
(void)utf8_to_eci(32, (unsigned char *) data[i].data, dest, &ret_length);
|
||||
diff_eci += clock() - start;
|
||||
}
|
||||
assert_equal(ret, ret2, "i:%d ret %d != ret2 %d\n", (int) i, ret, ret2);
|
||||
|
||||
printf("%*s: new % 8gms, gno % 8gms ratio % 9g, eci %gms\n", comment_max, data[i].comment,
|
||||
TEST_PERF_TIME(diff), TEST_PERF_TIME(diff_gno), TEST_PERF_RATIO(diff, diff_gno), TEST_PERF_TIME(diff_eci));
|
||||
|
||||
total += diff;
|
||||
total_gno += diff_gno;
|
||||
}
|
||||
if (index == -1) {
|
||||
printf("%*s: new % 8gms, gno % 8gms ratio % 9g, eci %gms\n", comment_max, "totals",
|
||||
TEST_PERF_TIME(total), TEST_PERF_TIME(total_gno), TEST_PERF_RATIO(total, total_gno), TEST_PERF_TIME(total_eci));
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
testFunction funcs[] = { /* name, func, has_index, has_generate, has_debug */
|
||||
{ "test_gb18030_wctomb_zint", test_gb18030_wctomb_zint, 0, 0, 0 },
|
||||
{ "test_u_gb18030_int", test_u_gb18030_int, 0, 0, 1 },
|
||||
{ "test_gb18030_utf8", test_gb18030_utf8, 1, 0, 0 },
|
||||
{ "test_gb18030_utf8_to_eci", test_gb18030_utf8_to_eci, 1, 0, 0 },
|
||||
{ "test_gb18030_cpy", test_gb18030_cpy, 1, 0, 0 },
|
||||
{ "test_gbk_wctomb_zint", test_gbk_wctomb_zint, 0, 0, 0 },
|
||||
{ "test_u_gbk_int", test_u_gbk_int, 0, 0, 0 },
|
||||
{ "test_perf", test_perf, 1, 0, 1 },
|
||||
};
|
||||
|
||||
testRun(argc, argv, funcs, ARRAY_SIZE(funcs));
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
libzint - the open source barcode library
|
||||
Copyright (C) 2019 - 2021 Robin Stuart <rstuart114@gmail.com>
|
||||
Copyright (C) 2019-2022 Robin Stuart <rstuart114@gmail.com>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
@ -27,67 +27,120 @@
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
*/
|
||||
/* vim: set ts=4 sw=4 et : */
|
||||
|
||||
#include "testcommon.h"
|
||||
#include "test_gb2312_tab.h"
|
||||
#include "../gb2312.h"
|
||||
#include "../eci.h"
|
||||
/* For local "private" testing using previous libiconv adaptation, not included for licensing reasons */
|
||||
//#define TEST_JUST_SAY_GNO
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
#include "../just_say_gno/gb2312_gnu.c"
|
||||
#endif
|
||||
|
||||
INTERNAL int u_gb2312_int_test(const unsigned int u, unsigned int *d);
|
||||
|
||||
// As control convert to GB 2312 using simple table generated from unicode.org GB2312.TXT plus simple processing
|
||||
// GB2312.TXT no longer on unicode.org site but available from https://haible.de/bruno/charsets/conversion-tables/GB2312.html
|
||||
static int gb2312_wctomb_zint2(unsigned int *r, unsigned int wc) {
|
||||
static int u_gb2312_int2(unsigned int u, unsigned int *d) {
|
||||
int tab_length, start_i, end_i;
|
||||
int i;
|
||||
|
||||
if (u < 0x80) {
|
||||
*d = (unsigned char) u;
|
||||
return 1;
|
||||
}
|
||||
// Shortcut
|
||||
if ((wc > 0x0451 && wc < 0x2015) || (wc > 0x3229 && wc < 0x4E00) || (wc > 0x9FA0 && wc < 0xFF01) || wc > 0xFFE5) {
|
||||
if ((u > 0x0451 && u < 0x2015) || (u > 0x3229 && u < 0x4E00) || (u > 0x9FA0 && u < 0xFF01) || u > 0xFFE5) {
|
||||
return 0;
|
||||
}
|
||||
tab_length = ARRAY_SIZE(test_gb2312_tab);
|
||||
start_i = test_gb2312_tab_ind[wc >> 10];
|
||||
start_i = test_gb2312_tab_ind[u >> 10];
|
||||
end_i = start_i + 0x800 > tab_length ? tab_length : start_i + 0x800;
|
||||
for (i = start_i; i < end_i; i += 2) {
|
||||
if (test_gb2312_tab[i + 1] == wc) {
|
||||
*r = test_gb2312_tab[i] + 0x8080; // Table in GB 2312 not EUC-CN
|
||||
if (test_gb2312_tab[i + 1] == u) {
|
||||
*d = test_gb2312_tab[i] + 0x8080; // Table in GB 2312 not EUC-CN
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void test_gb2312_wctomb_zint(void) {
|
||||
#include <time.h>
|
||||
|
||||
#define TEST_PERF_TIME(arg) (((arg) * 1000.0) / CLOCKS_PER_SEC)
|
||||
#define TEST_PERF_RATIO(a1, a2) (a2 ? TEST_PERF_TIME(a1) / TEST_PERF_TIME(a2) : 0)
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
#define TEST_INT_PERF_ITERATIONS 250
|
||||
#endif
|
||||
|
||||
static void test_u_gb2312_int(int debug) {
|
||||
|
||||
int ret, ret2;
|
||||
unsigned int val, val2;
|
||||
unsigned int i;
|
||||
|
||||
testStart("test_gb2312_wctomb_zint");
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
int j;
|
||||
clock_t start;
|
||||
clock_t total = 0, total_gno = 0;
|
||||
#else
|
||||
(void)debug;
|
||||
#endif
|
||||
|
||||
testStart("test_u_gb2312_int");
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
if ((debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
|
||||
printf("test_u_gb2312_int perf iterations: %d\n", TEST_INT_PERF_ITERATIONS);
|
||||
}
|
||||
#endif
|
||||
|
||||
for (i = 0; i < 0xFFFE; i++) {
|
||||
if (i < 0x80) { // ASCII is straight through and not dealt with by gb2312_wctomb_zint()
|
||||
continue;
|
||||
}
|
||||
if (i >= 0xD800 && i <= 0xDFFF) { // UTF-16 surrogates
|
||||
continue;
|
||||
}
|
||||
val = val2 = 0;
|
||||
ret = gb2312_wctomb_zint(&val, i);
|
||||
ret2 = gb2312_wctomb_zint2(&val2, i);
|
||||
if (i == 0xB7) { // Extra mapping middle dot U+00B7 to 0xA1A4, duplicate of U+30FB (Katakana middle dot)
|
||||
assert_equal(ret, 2, "i:%d 0x%04X ret %d != 2, val 0x%04X\n", (int) i, i, ret, val);
|
||||
assert_equal(val, 0xA1A4, "i:%d 0x%04X val 0x%04X != 0xA1A4\n", (int) i, i, val);
|
||||
assert_zero(ret2, "i:%d 0x%04X ret2 %d != 0, val2 0x%04X\n", (int) i, i, ret2, val2);
|
||||
} else if (i == 0x2014) { // Extra mapping em dash U+2014 to 0xA1AA, duplicate of U+2015 (horizontal bar)
|
||||
assert_equal(ret, 2, "i:%d 0x%04X ret %d != 2, val 0x%04X\n", (int) i, i, ret, val);
|
||||
assert_equal(val, 0xA1AA, "i:%d 0x%04X val 0x%04X != 0xA1AA\n", (int) i, i, val);
|
||||
assert_zero(ret2, "i:%d 0x%04X ret2 %d != 0, val2 0x%04X\n", (int) i, i, ret2, val2);
|
||||
} else {
|
||||
ret = u_gb2312_int_test(i, &val);
|
||||
ret2 = u_gb2312_int2(i, &val2);
|
||||
assert_equal(ret, ret2, "i:%d 0x%04X ret %d != ret2 %d, val 0x%04X, val2 0x%04X\n", (int) i, i, ret, ret2, val, val2);
|
||||
if (ret2) {
|
||||
assert_equal(val, val2, "i:%d 0x%04X val 0x%04X != val2 0x%04X\n", (int) i, i, val, val2);
|
||||
}
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
// `gb2312_wctomb_zint()` doesn't handle ASCII; and ignore duplicate mappings, no longer done
|
||||
if (i >= 0x80 && i != 0xB7 && i != 0x2014) {
|
||||
if (!(debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
|
||||
val2 = 0;
|
||||
ret2 = gb2312_wctomb_zint(&val2, i);
|
||||
} else {
|
||||
for (j = 0; j < TEST_INT_PERF_ITERATIONS; j++) {
|
||||
val = val2 = 0;
|
||||
|
||||
start = clock();
|
||||
ret = u_gb2312_int_test(i, &val);
|
||||
total += clock() - start;
|
||||
|
||||
start = clock();
|
||||
ret2 = gb2312_wctomb_zint(&val2, i);
|
||||
total_gno += clock() - start;
|
||||
}
|
||||
}
|
||||
|
||||
assert_equal(ret, ret2, "i:%d 0x%04X ret %d != ret2 %d, val 0x%04X, val2 0x%04X\n", (int) i, i, ret, ret2, val, val2);
|
||||
if (ret2) {
|
||||
assert_equal(val, val2, "i:%d 0x%04X val 0x%04X != val2 0x%04X\n", (int) i, i, val, val2);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
if ((debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
|
||||
printf("test_u_gb2312_int perf totals: new % 8gms, gno % 8gms ratio %g\n",
|
||||
TEST_PERF_TIME(total), TEST_PERF_TIME(total_gno), TEST_PERF_RATIO(total, total_gno));
|
||||
}
|
||||
#endif
|
||||
|
||||
testFinish();
|
||||
}
|
||||
@ -117,11 +170,12 @@ static void test_gb2312_utf8(int index) {
|
||||
/* 2*/ { "¤", -1, 0, 1, { 0xA1E8 }, "" },
|
||||
/* 3*/ { "¥", -1, ZINT_ERROR_INVALID_DATA, -1, {0}, "" },
|
||||
/* 4*/ { "・", -1, 0, 1, { 0xA1A4 }, "GB2312.TXT mapping" },
|
||||
/* 5*/ { "·", -1, 0, 1, { 0xA1A4 }, "GB 18030 subset mapping" },
|
||||
/* 5*/ { "·", -1, ZINT_ERROR_INVALID_DATA, -1, {0}, "No longer does GB 18030 subset mapping" },
|
||||
/* 6*/ { "―", -1, 0, 1, { 0xA1AA }, "GB2312.TXT mapping" },
|
||||
/* 7*/ { "—", -1, 0, 1, { 0xA1AA }, "GB 18030 subset mapping" },
|
||||
/* 8*/ { "aβc・·—é—Z", -1, 0, 9, { 'a', 0xA6C2, 'c', 0xA1A4, 0xA1A4, 0xA1AA, 0xA8A6, 0xA1AA, 'Z' }, "" },
|
||||
/* 9*/ { "\200", -1, ZINT_ERROR_INVALID_DATA, -1, {0}, "Invalid UTF-8" },
|
||||
/* 7*/ { "—", -1, ZINT_ERROR_INVALID_DATA, -1, {0}, "No longer does GB 18030 subset mapping" },
|
||||
/* 8*/ { "aβc・―é―Z", -1, 0, 8, { 'a', 0xA6C2, 'c', 0xA1A4, 0xA1AA, 0xA8A6, 0xA1AA, 'Z' }, "" },
|
||||
/* 9*/ { "aβc・·—é—Z", -1, ZINT_ERROR_INVALID_DATA, -1, {0}, "No longer does GB 18030 mappings" },
|
||||
/* 10*/ { "\200", -1, ZINT_ERROR_INVALID_DATA, -1, {0}, "Invalid UTF-8" },
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
int i, length, ret;
|
||||
@ -253,6 +307,9 @@ static void test_gb2312_utf8_to_eci(int index) {
|
||||
testFinish();
|
||||
}
|
||||
|
||||
INTERNAL void gb2312_cpy_test(const unsigned char source[], int *p_length, unsigned int *ddata,
|
||||
const int full_multibyte);
|
||||
|
||||
static void test_gb2312_cpy(int index) {
|
||||
|
||||
struct item {
|
||||
@ -293,7 +350,7 @@ static void test_gb2312_cpy(int index) {
|
||||
length = data[i].length == -1 ? (int) strlen(data[i].data) : data[i].length;
|
||||
ret_length = length;
|
||||
|
||||
gb2312_cpy((unsigned char *) data[i].data, &ret_length, gbdata, data[i].full_multibyte);
|
||||
gb2312_cpy_test((unsigned char *) data[i].data, &ret_length, gbdata, data[i].full_multibyte);
|
||||
assert_equal(ret_length, data[i].ret_length, "i:%d ret_length %d != %d\n", i, ret_length, data[i].ret_length);
|
||||
for (j = 0; j < (int) ret_length; j++) {
|
||||
assert_equal(gbdata[j], data[i].expected_gbdata[j], "i:%d gbdata[%d] %04X != %04X\n", i, j, gbdata[j], data[i].expected_gbdata[j]);
|
||||
@ -303,13 +360,110 @@ static void test_gb2312_cpy(int index) {
|
||||
testFinish();
|
||||
}
|
||||
|
||||
#define TEST_PERF_ITER_MILLES 100
|
||||
#define TEST_PERF_ITERATIONS (TEST_PERF_ITER_MILLES * 1000)
|
||||
|
||||
// Not a real test, just performance indicator
|
||||
static void test_perf(int index, int debug) {
|
||||
|
||||
struct item {
|
||||
char *data;
|
||||
int ret;
|
||||
|
||||
char *comment;
|
||||
};
|
||||
struct item data[] = {
|
||||
/* 0*/ { "1234567890", 0, "10 numerics" },
|
||||
/* 1*/ { "条码北京條碼པེ་ཅིང།バーコード바코드", 0, "Small various code pages" },
|
||||
/* 2*/ { "Summer Palace Ticket for 6 June 2015 13:00;2015年6月6日夜01時00分PM頤和園のチケット;2015년6월6일13시오후여름궁전티켓.2015年6月6号下午13:00的颐和园门票;", 0, "Small mixed ASCII/Hanzi" },
|
||||
/* 3*/ { "汉信码标准\015\012中国物品编码中心\015\012北京网路畅想科技发展有限公司\015\012张成海、赵楠、黄燕滨、罗秋科、王毅、张铎、王越\015\012施煜、边峥、修兴强\015\012汉信码标准\015\012中国物品编码中心\015\012北京网路畅想科技发展有限公司", 0, "Bigger mixed" },
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
int i, length, ret;
|
||||
|
||||
struct zint_symbol symbol = {0};
|
||||
int ret_length, ret_length2;
|
||||
unsigned int ddata[8192];
|
||||
unsigned char dest[8192];
|
||||
int ret2 = 0;
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
unsigned int ddata2[8192];
|
||||
unsigned char dest2[8192];
|
||||
#endif
|
||||
|
||||
clock_t start;
|
||||
clock_t total = 0, total_gno = 0, total_eci = 0, total_eci_gno = 0;
|
||||
clock_t diff, diff_gno, diff_eci, diff_eci_gno;
|
||||
int comment_max = 0;
|
||||
|
||||
if (!(debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < data_size; i++) if ((int) strlen(data[i].comment) > comment_max) comment_max = (int) strlen(data[i].comment);
|
||||
|
||||
printf("Iterations %d\n", TEST_PERF_ITERATIONS);
|
||||
|
||||
for (i = 0; i < data_size; i++) {
|
||||
int j;
|
||||
|
||||
if (index != -1 && i != index) continue;
|
||||
|
||||
length = (int) strlen(data[i].data);
|
||||
|
||||
diff = diff_gno = diff_eci = diff_eci_gno = 0;
|
||||
|
||||
for (j = 0; j < TEST_PERF_ITERATIONS; j++) {
|
||||
ret_length = ret_length2 = length;
|
||||
|
||||
start = clock();
|
||||
ret = gb2312_utf8(&symbol, (unsigned char *) data[i].data, &ret_length, ddata);
|
||||
diff += clock() - start;
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
start = clock();
|
||||
ret2 = gb2312_utf8_wctomb(&symbol, (unsigned char *) data[i].data, &ret_length2, ddata2);
|
||||
diff_gno += clock() - start;
|
||||
#endif
|
||||
|
||||
ret_length = ret_length2 = length;
|
||||
|
||||
start = clock();
|
||||
(void)utf8_to_eci(29, (unsigned char *) data[i].data, dest, &ret_length);
|
||||
diff_eci += clock() - start;
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
start = clock();
|
||||
(void)utf8_to_eci_wctomb(29, (unsigned char *) data[i].data, dest2, &ret_length2);
|
||||
diff_eci_gno += clock() - start;
|
||||
#endif
|
||||
}
|
||||
assert_equal(ret, ret2, "i:%d ret %d != ret2 %d\n", (int) i, ret, ret2);
|
||||
|
||||
printf("%*s: new % 8gms, gno % 8gms ratio % 9g | eci % 8gms, gno % 8gms ratio %g\n", comment_max, data[i].comment,
|
||||
TEST_PERF_TIME(diff), TEST_PERF_TIME(diff_gno), TEST_PERF_RATIO(diff, diff_gno),
|
||||
TEST_PERF_TIME(diff_eci), TEST_PERF_TIME(diff_eci_gno), TEST_PERF_RATIO(diff_eci, diff_eci_gno));
|
||||
|
||||
total += diff;
|
||||
total_gno += diff_gno;
|
||||
total_eci += diff_eci;
|
||||
total_eci_gno += diff_eci_gno;
|
||||
}
|
||||
if (index == -1) {
|
||||
printf("%*s: new % 8gms, gno % 8gms ratio % 9g | eci % 8gms, gno % 8gms ratio %g\n", comment_max, "totals",
|
||||
TEST_PERF_TIME(total), TEST_PERF_TIME(total_gno), TEST_PERF_RATIO(total, total_gno),
|
||||
TEST_PERF_TIME(total_eci), TEST_PERF_TIME(total_eci_gno), TEST_PERF_RATIO(total_eci, total_eci_gno));
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
testFunction funcs[] = { /* name, func, has_index, has_generate, has_debug */
|
||||
{ "test_gb2312_wctomb_zint", test_gb2312_wctomb_zint, 0, 0, 0 },
|
||||
{ "test_u_gb2312_int", test_u_gb2312_int, 0, 0, 1 },
|
||||
{ "test_gb2312_utf8", test_gb2312_utf8, 1, 0, 0 },
|
||||
{ "test_gb2312_utf8_to_eci", test_gb2312_utf8_to_eci, 1, 0, 0 },
|
||||
{ "test_gb2312_cpy", test_gb2312_cpy, 1, 0, 0 },
|
||||
{ "test_perf", test_perf, 1, 0, 1 },
|
||||
};
|
||||
|
||||
testRun(argc, argv, funcs, ARRAY_SIZE(funcs));
|
||||
@ -318,3 +472,5 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* vim: set ts=4 sw=4 et : */
|
||||
|
21989
backend/tests/test_gbk_tab.h
Normal file
21989
backend/tests/test_gbk_tab.h
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
/*
|
||||
libzint - the open source barcode library
|
||||
Copyright (C) 2021 Robin Stuart <rstuart114@gmail.com>
|
||||
Copyright (C) 2021-2022 Robin Stuart <rstuart114@gmail.com>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
@ -27,64 +27,138 @@
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
*/
|
||||
/* vim: set ts=4 sw=4 et : */
|
||||
|
||||
#include "testcommon.h"
|
||||
#include "test_ksx1001_tab.h"
|
||||
#include "../ksx1001.h"
|
||||
/* For local "private" testing using previous libiconv adaptation, not included for licensing reasons */
|
||||
//#define TEST_JUST_SAY_GNO
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
#include "../just_say_gno/ksx1001_gnu.h"
|
||||
#endif
|
||||
|
||||
// As control convert to KS X 1001 using simple table generated from https://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/KSC/KSX1001.TXT plus simple processing
|
||||
static int ksx1001_wctomb_zint2(unsigned int *r, unsigned int wc) {
|
||||
INTERNAL int u_ksx1001_test(const unsigned int u, unsigned char *dest);
|
||||
|
||||
// Version of `u_ksx1001()` taking unsigned int destination for backward-compatible testing
|
||||
static int u_ksx1001_int(const unsigned int u, unsigned int *d) {
|
||||
unsigned char dest[2];
|
||||
int ret = u_ksx1001_test(u, dest);
|
||||
if (ret) {
|
||||
*d = ret == 1 ? dest[0] : ((dest[0] << 8) | dest[1]);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
// As control convert to KS X 1001 using simple table generated from
|
||||
// https://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/KSC/KSX1001.TXT plus simple processing
|
||||
static int u_ksx1001_int2(unsigned int u, unsigned int *dest) {
|
||||
int tab_length, start_i, end_i;
|
||||
int i;
|
||||
|
||||
if (wc < 0x80) {
|
||||
return 0;
|
||||
if (u < 0x80) {
|
||||
*dest = u;
|
||||
return 1;
|
||||
}
|
||||
if (wc == 0x20AC) { // Euro sign added KS X 1001:1998
|
||||
*r = 0x2266;
|
||||
if (u == 0x20AC) { // Euro sign added KS X 1001:1998
|
||||
*dest = 0x2266 + 0x8080;
|
||||
return 2;
|
||||
}
|
||||
if (wc == 0xAE) { // Registered trademark added KS X 1001:1998
|
||||
*r = 0x2267;
|
||||
if (u == 0xAE) { // Registered trademark added KS X 1001:1998
|
||||
*dest = 0x2267 + 0x8080;
|
||||
return 2;
|
||||
}
|
||||
if (wc == 0x327E) { // Korean postal code symbol added KS X 1001:2002
|
||||
*r = 0x2268;
|
||||
if (u == 0x327E) { // Korean postal code symbol added KS X 1001:2002
|
||||
*dest = 0x2268 + 0x8080;
|
||||
return 2;
|
||||
}
|
||||
tab_length = ARRAY_SIZE(test_ksx1001_tab);
|
||||
start_i = test_ksx1001_tab_ind[wc >> 10];
|
||||
start_i = test_ksx1001_tab_ind[u >> 10];
|
||||
end_i = start_i + 0x800 > tab_length ? tab_length : start_i + 0x800;
|
||||
for (i = start_i; i < end_i; i += 2) {
|
||||
if (test_ksx1001_tab[i + 1] == wc) {
|
||||
*r = test_ksx1001_tab[i];
|
||||
return *r > 0xFF ? 2 : 1;
|
||||
if (test_ksx1001_tab[i + 1] == u) {
|
||||
*dest = test_ksx1001_tab[i] + 0x8080;
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void test_ksx1001_wctomb_zint(void) {
|
||||
#include <time.h>
|
||||
|
||||
#define TEST_PERF_TIME(arg) (((arg) * 1000.0) / CLOCKS_PER_SEC)
|
||||
#define TEST_PERF_RATIO(a1, a2) (a2 ? TEST_PERF_TIME(a1) / TEST_PERF_TIME(a2) : 0)
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
#define TEST_INT_PERF_ITERATIONS 100
|
||||
#endif
|
||||
|
||||
static void test_u_ksx1001_int(int debug) {
|
||||
|
||||
int ret, ret2;
|
||||
unsigned int val, val2;
|
||||
unsigned i;
|
||||
|
||||
testStart("test_ksx1001_wctomb_zint");
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
int j;
|
||||
clock_t start;
|
||||
clock_t total = 0, total_gno = 0;
|
||||
#else
|
||||
(void)debug;
|
||||
#endif
|
||||
|
||||
testStart("test_u_ksx1001_int");
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
if ((debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
|
||||
printf("test_u_ksx1001_int perf iterations: %d\n", TEST_INT_PERF_ITERATIONS);
|
||||
}
|
||||
#endif
|
||||
|
||||
for (i = 0; i < 0xFFFE; i++) {
|
||||
if (i >= 0xD800 && i <= 0xDFFF) { // UTF-16 surrogates
|
||||
continue;
|
||||
}
|
||||
val = val2 = 0;
|
||||
ret = ksx1001_wctomb_zint(&val, i);
|
||||
ret2 = ksx1001_wctomb_zint2(&val2, i);
|
||||
ret = u_ksx1001_int(i, &val);
|
||||
ret2 = u_ksx1001_int2(i, &val2);
|
||||
assert_equal(ret, ret2, "i:%d 0x%04X ret %d != ret2 %d, val 0x%04X, val2 0x%04X\n", (int) i, i, ret, ret2, val, val2);
|
||||
if (ret2) {
|
||||
assert_equal(val, val2, "i:%d 0x%04X val 0x%04X != val2 0x%04X\n", (int) i, i, val, val2);
|
||||
}
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
if (i >= 0x80) { // `ksx1001_wctomb_zint()` doesn't handle ASCII
|
||||
if (!(debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
|
||||
val2 = 0;
|
||||
ret2 = ksx1001_wctomb_zint(&val2, i);
|
||||
} else {
|
||||
for (j = 0; j < TEST_INT_PERF_ITERATIONS; j++) {
|
||||
val = val2 = 0;
|
||||
|
||||
start = clock();
|
||||
ret = u_ksx1001_int(i, &val);
|
||||
total += clock() - start;
|
||||
|
||||
start = clock();
|
||||
ret2 = ksx1001_wctomb_zint(&val2, i);
|
||||
total_gno += clock() - start;
|
||||
}
|
||||
}
|
||||
|
||||
assert_equal(ret, ret2, "i:%d 0x%04X ret %d != ret2 %d, val 0x%04X, val2 0x%04X\n", (int) i, i, ret, ret2, val, val2);
|
||||
if (ret2) {
|
||||
val2 += 0x8080; // `ksx1001_wctomb_zint()` returns pure KS X 1001 values, convert to EUC-KR
|
||||
assert_equal(val, val2, "i:%d 0x%04X val 0x%04X != val2 0x%04X\n", (int) i, i, val, val2);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
if ((debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
|
||||
printf("test_u_ksx1001_int perf totals: new % 8gms, gno % 8gms ratio %g\n",
|
||||
TEST_PERF_TIME(total), TEST_PERF_TIME(total_gno), TEST_PERF_RATIO(total, total_gno));
|
||||
}
|
||||
#endif
|
||||
|
||||
testFinish();
|
||||
}
|
||||
@ -92,7 +166,7 @@ static void test_ksx1001_wctomb_zint(void) {
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
testFunction funcs[] = { /* name, func, has_index, has_generate, has_debug */
|
||||
{ "test_ksx1001_wctomb_zint", test_ksx1001_wctomb_zint, 0, 0, 0 },
|
||||
{ "test_u_ksx1001_int", test_u_ksx1001_int, 0, 0, 1 },
|
||||
};
|
||||
|
||||
testRun(argc, argv, funcs, ARRAY_SIZE(funcs));
|
||||
@ -101,3 +175,5 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* vim: set ts=4 sw=4 et : */
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
libzint - the open source barcode library
|
||||
Copyright (C) 2019 - 2021 Robin Stuart <rstuart114@gmail.com>
|
||||
Copyright (C) 2019-2022 Robin Stuart <rstuart114@gmail.com>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
@ -27,86 +27,141 @@
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
*/
|
||||
/* vim: set ts=4 sw=4 et : */
|
||||
|
||||
#include "testcommon.h"
|
||||
#include "test_sjis_tab.h"
|
||||
#include "../sjis.h"
|
||||
#include "../eci.h"
|
||||
/* For local "private" testing using previous libiconv adaptation, not included for licensing reasons */
|
||||
//#define TEST_JUST_SAY_GNO
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
#include "../just_say_gno/sjis_gnu.c"
|
||||
#endif
|
||||
|
||||
INTERNAL int u_sjis_int_test(const unsigned int u, unsigned int *dest);
|
||||
|
||||
// As control convert to Shift JIS using simple table generated from https://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/SHIFTJIS.TXT plus simple processing
|
||||
static int sjis_wctomb_zint2(unsigned int *r, unsigned int wc) {
|
||||
static int u_sjis_int2(unsigned int u, unsigned int *dest) {
|
||||
int tab_length, start_i, end_i;
|
||||
int i;
|
||||
if (wc < 0x20 || wc == 0x7F) {
|
||||
*r = wc;
|
||||
if (u < 0x20 || u == 0x7F) {
|
||||
*dest = u;
|
||||
return 1;
|
||||
}
|
||||
// Shortcut
|
||||
if ((wc > 0x00F7 && wc < 0x0391) || (wc > 0x0451 && wc < 0x2010) || (wc > 0x9FA0 && wc < 0xE000) || (wc > 0xE757 && wc < 0xFF01) || wc > 0xFFE5) {
|
||||
if ((u > 0x00F7 && u < 0x0391) || (u > 0x0451 && u < 0x2010) || (u > 0x9FA0 && u < 0xE000) || (u > 0xE757 && u < 0xFF01) || u > 0xFFE5) {
|
||||
return 0;
|
||||
}
|
||||
if (wc >= 0xE000 && wc <= 0xE757) { // PUA mappings, not in SHIFTJIS.TXT
|
||||
if (wc <= 0xE0BB) {
|
||||
*r = wc - 0xE000 + 0xF040 + (wc >= 0xE000 + 0x3F);
|
||||
} else if (wc <= 0xE177) {
|
||||
*r = wc - 0xE0BC + 0xF140 + (wc >= 0xE0BC + 0x3F);
|
||||
} else if (wc <= 0xE233) {
|
||||
*r = wc - 0xE178 + 0xF240 + (wc >= 0xE178 + 0x3F);
|
||||
} else if (wc <= 0xE2EF) {
|
||||
*r = wc - 0xE234 + 0xF340 + (wc >= 0xE234 + 0x3F);
|
||||
} else if (wc <= 0xE3AB) {
|
||||
*r = wc - 0xE2F0 + 0xF440 + (wc >= 0xE2F0 + 0x3F);
|
||||
} else if (wc <= 0xE467) {
|
||||
*r = wc - 0xE3AC + 0xF540 + (wc >= 0xE3AC + 0x3F);
|
||||
} else if (wc <= 0xE523) {
|
||||
*r = wc - 0xE468 + 0xF640 + (wc >= 0xE468 + 0x3F);
|
||||
} else if (wc <= 0xE5DF) {
|
||||
*r = wc - 0xE524 + 0xF740 + (wc >= 0xE524 + 0x3F);
|
||||
} else if (wc <= 0xE69B) {
|
||||
*r = wc - 0xE5E0 + 0xF840 + (wc >= 0xE5E0 + 0x3F);
|
||||
if (u >= 0xE000 && u <= 0xE757) { // PUA mappings, not in SHIFTJIS.TXT
|
||||
if (u <= 0xE0BB) {
|
||||
*dest = u - 0xE000 + 0xF040 + (u >= 0xE000 + 0x3F);
|
||||
} else if (u <= 0xE177) {
|
||||
*dest = u - 0xE0BC + 0xF140 + (u >= 0xE0BC + 0x3F);
|
||||
} else if (u <= 0xE233) {
|
||||
*dest = u - 0xE178 + 0xF240 + (u >= 0xE178 + 0x3F);
|
||||
} else if (u <= 0xE2EF) {
|
||||
*dest = u - 0xE234 + 0xF340 + (u >= 0xE234 + 0x3F);
|
||||
} else if (u <= 0xE3AB) {
|
||||
*dest = u - 0xE2F0 + 0xF440 + (u >= 0xE2F0 + 0x3F);
|
||||
} else if (u <= 0xE467) {
|
||||
*dest = u - 0xE3AC + 0xF540 + (u >= 0xE3AC + 0x3F);
|
||||
} else if (u <= 0xE523) {
|
||||
*dest = u - 0xE468 + 0xF640 + (u >= 0xE468 + 0x3F);
|
||||
} else if (u <= 0xE5DF) {
|
||||
*dest = u - 0xE524 + 0xF740 + (u >= 0xE524 + 0x3F);
|
||||
} else if (u <= 0xE69B) {
|
||||
*dest = u - 0xE5E0 + 0xF840 + (u >= 0xE5E0 + 0x3F);
|
||||
} else {
|
||||
*r = wc - 0xE69C + 0xF940 + (wc >= 0xE69C + 0x3F);
|
||||
*dest = u - 0xE69C + 0xF940 + (u >= 0xE69C + 0x3F);
|
||||
}
|
||||
return 2;
|
||||
}
|
||||
tab_length = sizeof(test_sjis_tab) / sizeof(unsigned int);
|
||||
start_i = test_sjis_tab_ind[wc >> 10];
|
||||
start_i = test_sjis_tab_ind[u >> 10];
|
||||
end_i = start_i + 0x800 > tab_length ? tab_length : start_i + 0x800;
|
||||
for (i = start_i; i < end_i; i += 2) {
|
||||
if (test_sjis_tab[i + 1] == wc) {
|
||||
*r = test_sjis_tab[i];
|
||||
return *r > 0xFF ? 2 : 1;
|
||||
if (test_sjis_tab[i + 1] == u) {
|
||||
*dest = test_sjis_tab[i];
|
||||
return *dest > 0xFF ? 2 : 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void test_sjis_wctomb_zint(void) {
|
||||
#include <time.h>
|
||||
|
||||
#define TEST_PERF_TIME(arg) (((arg) * 1000.0) / CLOCKS_PER_SEC)
|
||||
#define TEST_PERF_RATIO(a1, a2) (a2 ? TEST_PERF_TIME(a1) / TEST_PERF_TIME(a2) : 0)
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
#define TEST_INT_PERF_ITERATIONS 100
|
||||
#endif
|
||||
|
||||
static void test_u_sjis_int(int debug) {
|
||||
|
||||
int ret, ret2;
|
||||
unsigned int val, val2;
|
||||
unsigned int i;
|
||||
|
||||
testStart("test_sjis_wctomb_zint");
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
int j;
|
||||
clock_t start;
|
||||
clock_t total = 0, total_gno = 0;
|
||||
#else
|
||||
(void)debug;
|
||||
#endif
|
||||
|
||||
testStart("test_u_sjis_int");
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
if ((debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
|
||||
printf("test_u_sjis_int perf iterations: %d\n", TEST_INT_PERF_ITERATIONS);
|
||||
}
|
||||
#endif
|
||||
|
||||
for (i = 0; i < 0xFFFE; i++) {
|
||||
if (i >= 0xD800 && i <= 0xDFFF) { // UTF-16 surrogates
|
||||
continue;
|
||||
}
|
||||
val = val2 = 0;
|
||||
ret = sjis_wctomb_zint(&val, i);
|
||||
ret2 = sjis_wctomb_zint2(&val2, i);
|
||||
if (i == 0xFF3C) { // Extra mapping full-width reverse solidus U+FF3C to 0x815F, duplicate of U+005C (backslash)
|
||||
assert_equal(ret, 2, "i:%d 0x%04X ret %d != 2, val 0x%04X\n", (int) i, i, ret, val);
|
||||
assert_equal(val, 0x815F, "i:%d 0x%04X val 0x%04X != 0x815F\n", (int) i, i, val);
|
||||
assert_zero(ret2, "i:%d 0x%04X ret2 %d != 0, val2 0x%04X\n", (int) i, i, ret2, val2);
|
||||
} else {
|
||||
ret = u_sjis_int_test(i, &val);
|
||||
ret2 = u_sjis_int2(i, &val2);
|
||||
assert_equal(ret, ret2, "i:%d 0x%04X ret %d != ret2 %d, val 0x%04X, val2 0x%04X\n", (int) i, i, ret, ret2, val, val2);
|
||||
if (ret2) {
|
||||
assert_equal(val, val2, "i:%d 0x%04X val 0x%04X != val2 0x%04X\n", (int) i, i, val, val2);
|
||||
}
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
if (i != 0xFF3C) { // Full-width reverse solidus duplicate no longer mapped to ignore
|
||||
if (!(debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
|
||||
val2 = 0;
|
||||
ret2 = sjis_wctomb_zint(&val2, i);
|
||||
} else {
|
||||
for (j = 0; j < TEST_INT_PERF_ITERATIONS; j++) {
|
||||
val = val2 = 0;
|
||||
|
||||
start = clock();
|
||||
ret = u_sjis_int_test(i, &val);
|
||||
total += clock() - start;
|
||||
|
||||
start = clock();
|
||||
ret2 = sjis_wctomb_zint(&val2, i);
|
||||
total_gno += clock() - start;
|
||||
}
|
||||
}
|
||||
|
||||
assert_equal(ret, ret2, "i:%d 0x%04X ret %d != ret2 %d, val 0x%04X, val2 0x%04X\n", (int) i, i, ret, ret2, val, val2);
|
||||
if (ret2) {
|
||||
assert_equal(val, val2, "i:%d 0x%04X val 0x%04X != val2 0x%04X\n", (int) i, i, val, val2);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
if ((debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
|
||||
printf("test_u_sjis_int perf totals: new % 8gms, gno % 8gms ratio %g\n",
|
||||
TEST_PERF_TIME(total), TEST_PERF_TIME(total_gno), TEST_PERF_RATIO(total, total_gno));
|
||||
}
|
||||
#endif
|
||||
|
||||
testFinish();
|
||||
}
|
||||
@ -128,7 +183,7 @@ static void test_sjis_utf8(int index) {
|
||||
// ・ U+FF65 half-width katakana, not in ISO/Win, in Shift JIS single-byte 0xA5 (\245), UTF-8 EFBDA5
|
||||
// ソ U+FF7F half-width katakana, not in ISO/Win, in Shift JIS single-byte 0xBF (\277), UTF-8 EFBDBF
|
||||
// ‾ U+203E overline, not in ISO/Win, in Shift JIS single-byte 0x7E (\176) (tilde), UTF-8 E280BE
|
||||
// \ U+FF3C full-width reverse solidus, in Shift JIS 0x815F, duplicate of mapping of U+005C, UTF-8 EFBCBC
|
||||
// \ U+FF3C full-width reverse solidus, in Shift JIS 0x815F, was duplicate of mapping of U+005C, UTF-8 EFBCBC
|
||||
// 点 U+70B9 kanji, in Shift JIS 0x935F (\223\137), UTF-8 E782B9
|
||||
// 茗 U+8317 kanji, in Shift JIS 0xE4AA (\344\252), UTF-8 E88C97
|
||||
// テ U+30C6 katakana, in Shift JIS 0x8365 (\203\145), UTF-8 E38386
|
||||
@ -138,8 +193,9 @@ static void test_sjis_utf8(int index) {
|
||||
/* 1*/ { "~", -1, ZINT_ERROR_INVALID_DATA, -1, {0}, "" },
|
||||
/* 2*/ { "β", -1, 0, 1, { 0x83C0 }, "" },
|
||||
/* 3*/ { "¥", -1, 0, 1, { 0x5C }, "" },
|
||||
/* 4*/ { "aβcЖ¥・ソ‾\\\点茗テ", -1, 0, 13, { 'a', 0x83C0, 'c', 0x8447, 0x5C, 0xA5, 0xBF, 0x7E, 0x815F, 0x815F, 0x935F, 0xE4AA, 0x8365 }, "" },
|
||||
/* 5*/ { "\200", -1, ZINT_ERROR_INVALID_DATA, -1, {0}, "Invalid UTF-8" },
|
||||
/* 4*/ { "aβcЖ¥・ソ‾\\点茗テ", -1, 0, 12, { 'a', 0x83C0, 'c', 0x8447, 0x5C, 0xA5, 0xBF, 0x7E, 0x815F, 0x935F, 0xE4AA, 0x8365 }, "" },
|
||||
/* 5*/ { "\", -1, ZINT_ERROR_INVALID_DATA, -1, {0}, "U+FF3C full-width reverse solidus no longer duplicate mapping of U+005C" },
|
||||
/* 6*/ { "\200", -1, ZINT_ERROR_INVALID_DATA, -1, {0}, "Invalid UTF-8" },
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
int i, length, ret;
|
||||
@ -310,13 +366,93 @@ static void test_sjis_cpy(int index) {
|
||||
testFinish();
|
||||
}
|
||||
|
||||
#define TEST_PERF_ITER_MILLES 100
|
||||
#define TEST_PERF_ITERATIONS (TEST_PERF_ITER_MILLES * 1000)
|
||||
|
||||
// Not a real test, just performance indicator
|
||||
static void test_perf(int index, int debug) {
|
||||
|
||||
struct item {
|
||||
char *data;
|
||||
int ret;
|
||||
|
||||
char *comment;
|
||||
};
|
||||
struct item data[] = {
|
||||
/* 0*/ { "1234567890", 0, "10 numerics" },
|
||||
/* 1*/ { "貫やぐ識禁ぱい再2間変字全ノレ没無8裁", 0, "Small mixed" },
|
||||
/* 2*/ { "貫やぐ識禁ぱい再2間変字全ノレ没無8裁花ほゃ過法ひなご札17能つーびれ投覧マ勝動エヨ額界よみ作皇ナヲニ打題ヌルヲ掲布益フが。入35能ト権話しこを断兆モヘ細情おじ名4減エヘイハ側機はょが意見想ハ業独案ユヲウ患職ヲ平美さ毎放どぽたけ家没べお化富べ町大シ情魚ッでれ一冬すぼめり。", 0, "Bigger mixed" },
|
||||
/* 3*/ { "貫やぐ識禁ぱい再2間変字全ノレ没無8裁花ほゃ過法ひなご札17能つーびれ投覧マ勝動エヨ額界よみ作皇ナヲニ打題ヌルヲ掲布益フが。入35能ト権話しこを断兆モヘ細情おじ名4減エヘイハ側機はょが意見想ハ業独案ユヲウ患職ヲ平美さ毎放どぽたけ家没べお化富べ町大シ情魚ッでれ一冬すぼめり。社ト可化モマ試音ばじご育青康演ぴぎ権型固スで能麩ぜらもほ河都しちほラ収90作の年要とだむ部動ま者断チ第41一1米索焦茂げむしれ。測フ物使だて目月国スリカハ夏検にいへ児72告物ゆは載核ロアメヱ登輸どべゃ催行アフエハ議歌ワ河倫剖だ。記タケウ因載ヒイホヤ禁3輩彦関トえび肝区勝ワリロ成禁ぼよ界白ウヒキレ中島べせぜい各安うしぽリ覧生テ基一でむしゃ中新トヒキソ声碁スしび起田ア信大未ゅもばち。", 0, "Bigger mixed" },
|
||||
/* 4*/ { "点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点", 0, "784 kanji" },
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
int i, length, ret;
|
||||
|
||||
struct zint_symbol symbol = {0};
|
||||
int ret_length, ret_length2;
|
||||
unsigned int ddata[8192];
|
||||
int ret2 = 0;
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
unsigned int ddata2[8192];
|
||||
#endif
|
||||
|
||||
clock_t start;
|
||||
clock_t total = 0, total_gno = 0;
|
||||
clock_t diff, diff_gno;
|
||||
int comment_max = 0;
|
||||
|
||||
if (!(debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < data_size; i++) if ((int) strlen(data[i].comment) > comment_max) comment_max = (int) strlen(data[i].comment);
|
||||
|
||||
printf("Iterations %d\n", TEST_PERF_ITERATIONS);
|
||||
|
||||
for (i = 0; i < data_size; i++) {
|
||||
int j;
|
||||
|
||||
if (index != -1 && i != index) continue;
|
||||
|
||||
length = (int) strlen(data[i].data);
|
||||
|
||||
diff = diff_gno = 0;
|
||||
|
||||
for (j = 0; j < TEST_PERF_ITERATIONS; j++) {
|
||||
ret_length = ret_length2 = length;
|
||||
|
||||
start = clock();
|
||||
ret = sjis_utf8(&symbol, (unsigned char *) data[i].data, &ret_length, ddata);
|
||||
diff += clock() - start;
|
||||
|
||||
#ifdef TEST_JUST_SAY_GNO
|
||||
start = clock();
|
||||
ret2 = sjis_utf8_wctomb(&symbol, (unsigned char *) data[i].data, &ret_length2, ddata2);
|
||||
diff_gno += clock() - start;
|
||||
#endif
|
||||
}
|
||||
assert_equal(ret, ret2, "i:%d ret %d != ret2 %d\n", (int) i, ret, ret2);
|
||||
|
||||
printf("%*s: new % 8gms, gno % 8gms ratio %g\n", comment_max, data[i].comment,
|
||||
TEST_PERF_TIME(diff), TEST_PERF_TIME(diff_gno), TEST_PERF_RATIO(diff, diff_gno));
|
||||
|
||||
total += diff;
|
||||
total_gno += diff_gno;
|
||||
}
|
||||
if (index == -1) {
|
||||
printf("%*s: new % 8gms, gno % 8gms ratio %g\n", comment_max, "totals",
|
||||
TEST_PERF_TIME(total), TEST_PERF_TIME(total_gno), TEST_PERF_RATIO(total, total_gno));
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
testFunction funcs[] = { /* name, func, has_index, has_generate, has_debug */
|
||||
{ "test_sjis_wctomb_zint", test_sjis_wctomb_zint, 0, 0, 0 },
|
||||
{ "test_u_sjis_int", test_u_sjis_int, 0, 0, 1 },
|
||||
{ "test_sjis_utf8", test_sjis_utf8, 1, 0, 0 },
|
||||
{ "test_sjis_utf8_to_eci", test_sjis_utf8_to_eci, 1, 0, 0 },
|
||||
{ "test_sjis_cpy", test_sjis_cpy, 1, 0, 0 },
|
||||
{ "test_perf", test_perf, 1, 0, 1 },
|
||||
};
|
||||
|
||||
testRun(argc, argv, funcs, ARRAY_SIZE(funcs));
|
||||
@ -325,3 +461,5 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* vim: set ts=4 sw=4 et : */
|
||||
|
@ -1,3 +0,0 @@
|
||||
# GB18030.TXT not included as 21MB in size. It can be downloaded from
|
||||
# https://haible.de/bruno/charsets/conversion-tables/GB18030.html
|
||||
# The version used is libiconv-1.11/GB18030.TXT
|
@ -2,38 +2,41 @@
|
||||
/* Generate lookup table from unicode.org mapping file (SHIFTJIS.TXT by default). */
|
||||
/*
|
||||
libzint - the open source barcode library
|
||||
Copyright (C) 2019-2021 Robin Stuart <rstuart114@gmail.com>
|
||||
Copyright (C) 2019-2022 Robin Stuart <rstuart114@gmail.com>
|
||||
*/
|
||||
/* To create backend/tests/test_sjis_tab.h (from backend/tests/build directory):
|
||||
/* To create backend/tests/test_sjis_tab.h (from the project root directory):
|
||||
*
|
||||
* php ../tools/gen_test_tab.php
|
||||
* php backend/tests/tools/gen_test_tab.php
|
||||
*
|
||||
* To create backend/tests/test_gb2312_tab.h;
|
||||
*
|
||||
* php ../tools/gen_test_tab.php -f GB2312.TXT -s gb2312_tab
|
||||
* php backend/tests/tools/gen_test_tab.php -f GB2312.TXT -s gb2312_tab
|
||||
*
|
||||
* To create backend/tests/test_gbk.h;
|
||||
*
|
||||
* php backend/tests/tools/gen_test_tab.php -f CP936.TXT -s gbk_tab
|
||||
*
|
||||
* To create backend/tests/test_gb18030_tab.h (note that backend/tests/tools/data/GB18030.TXT
|
||||
* will have to be downloaded first from https://haible.de/bruno/charsets/conversion-tables/GB18030.html
|
||||
* using the version libiconv-1.11/GB18030.TXT):
|
||||
* using the version jdk-1.4.2/GB18030.TXT):
|
||||
*
|
||||
* php ../tools/gen_test_tab.php -f GB18030.TXT -s gb18030_tab
|
||||
* php backend/tests/tools/gen_test_tab.php -f GB18030.TXT -s gb18030_tab
|
||||
*
|
||||
* To create backend/tests/test_big5_tab.h;
|
||||
*
|
||||
* php ../tools/gen_test_tab.php -f BIG5.TXT -s big5_tab
|
||||
* php backend/tests/tools/gen_test_tab.php -f BIG5.TXT -s big5_tab
|
||||
*
|
||||
* To create backend/tests/test_ksx1001_tab.h;
|
||||
*
|
||||
* php ../tools/gen_test_tab.php -f KSX1001.TXT -s ksx1001_tab
|
||||
* php backend/tests/tools/gen_test_tab.php -f KSX1001.TXT -s ksx1001_tab
|
||||
*
|
||||
*/
|
||||
/* vim: set ts=4 sw=4 et : */
|
||||
|
||||
$basename = basename(__FILE__);
|
||||
$dirname = dirname(__FILE__);
|
||||
|
||||
$opts = getopt('d:f:o:s:');
|
||||
$data_dirname = isset($opts['d']) ? $opts['d'] : ($dirname . '/data'); // Where to load file from.
|
||||
$data_dirname = isset($opts['d']) ? $opts['d'] : ($dirname . '/../../tools/data'); // Where to load file from.
|
||||
$file_name = isset($opts['f']) ? $opts['f'] : 'SHIFTJIS.TXT'; // Name of file.
|
||||
$out_dirname = isset($opts['o']) ? $opts['o'] : ($dirname . '/..'); // Where to put output.
|
||||
$suffix_name = isset($opts['s']) ? $opts['s'] : 'sjis_tab'; // Suffix of table and output file.
|
||||
@ -93,3 +96,5 @@ foreach ($sort as $ind => $unicode) {
|
||||
$out[] = '};';
|
||||
|
||||
file_put_contents($out_dirname . '/test_' . $suffix_name . '.h', implode("\n", $out) . "\n");
|
||||
|
||||
/* vim: set ts=4 sw=4 et : */
|
||||
|
292
backend/tools/data/8859-10.TXT
Normal file
292
backend/tools/data/8859-10.TXT
Normal file
@ -0,0 +1,292 @@
|
||||
# 8859-10.TXT
|
||||
# Date: 2015-12-02 21:53:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-10:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 October 11 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-10:1998 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-10 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-10 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version new.
|
||||
# 1.1 corrected mistake in mapping of 0xA4
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK
|
||||
0xA2 0x0112 # LATIN CAPITAL LETTER E WITH MACRON
|
||||
0xA3 0x0122 # LATIN CAPITAL LETTER G WITH CEDILLA
|
||||
0xA4 0x012A # LATIN CAPITAL LETTER I WITH MACRON
|
||||
0xA5 0x0128 # LATIN CAPITAL LETTER I WITH TILDE
|
||||
0xA6 0x0136 # LATIN CAPITAL LETTER K WITH CEDILLA
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x013B # LATIN CAPITAL LETTER L WITH CEDILLA
|
||||
0xA9 0x0110 # LATIN CAPITAL LETTER D WITH STROKE
|
||||
0xAA 0x0160 # LATIN CAPITAL LETTER S WITH CARON
|
||||
0xAB 0x0166 # LATIN CAPITAL LETTER T WITH STROKE
|
||||
0xAC 0x017D # LATIN CAPITAL LETTER Z WITH CARON
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x016A # LATIN CAPITAL LETTER U WITH MACRON
|
||||
0xAF 0x014A # LATIN CAPITAL LETTER ENG
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x0105 # LATIN SMALL LETTER A WITH OGONEK
|
||||
0xB2 0x0113 # LATIN SMALL LETTER E WITH MACRON
|
||||
0xB3 0x0123 # LATIN SMALL LETTER G WITH CEDILLA
|
||||
0xB4 0x012B # LATIN SMALL LETTER I WITH MACRON
|
||||
0xB5 0x0129 # LATIN SMALL LETTER I WITH TILDE
|
||||
0xB6 0x0137 # LATIN SMALL LETTER K WITH CEDILLA
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x013C # LATIN SMALL LETTER L WITH CEDILLA
|
||||
0xB9 0x0111 # LATIN SMALL LETTER D WITH STROKE
|
||||
0xBA 0x0161 # LATIN SMALL LETTER S WITH CARON
|
||||
0xBB 0x0167 # LATIN SMALL LETTER T WITH STROKE
|
||||
0xBC 0x017E # LATIN SMALL LETTER Z WITH CARON
|
||||
0xBD 0x2015 # HORIZONTAL BAR
|
||||
0xBE 0x016B # LATIN SMALL LETTER U WITH MACRON
|
||||
0xBF 0x014B # LATIN SMALL LETTER ENG
|
||||
0xC0 0x0100 # LATIN CAPITAL LETTER A WITH MACRON
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0xC6 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xC7 0x012E # LATIN CAPITAL LETTER I WITH OGONEK
|
||||
0xC8 0x010C # LATIN CAPITAL LETTER C WITH CARON
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x0116 # LATIN CAPITAL LETTER E WITH DOT ABOVE
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xD0 0x00D0 # LATIN CAPITAL LETTER ETH (Icelandic)
|
||||
0xD1 0x0145 # LATIN CAPITAL LETTER N WITH CEDILLA
|
||||
0xD2 0x014C # LATIN CAPITAL LETTER O WITH MACRON
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x0168 # LATIN CAPITAL LETTER U WITH TILDE
|
||||
0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xD9 0x0172 # LATIN CAPITAL LETTER U WITH OGONEK
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xDE 0x00DE # LATIN CAPITAL LETTER THORN (Icelandic)
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S (German)
|
||||
0xE0 0x0101 # LATIN SMALL LETTER A WITH MACRON
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0xE6 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xE7 0x012F # LATIN SMALL LETTER I WITH OGONEK
|
||||
0xE8 0x010D # LATIN SMALL LETTER C WITH CARON
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x0119 # LATIN SMALL LETTER E WITH OGONEK
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x0117 # LATIN SMALL LETTER E WITH DOT ABOVE
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0xF0 0x00F0 # LATIN SMALL LETTER ETH (Icelandic)
|
||||
0xF1 0x0146 # LATIN SMALL LETTER N WITH CEDILLA
|
||||
0xF2 0x014D # LATIN SMALL LETTER O WITH MACRON
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x0169 # LATIN SMALL LETTER U WITH TILDE
|
||||
0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE
|
||||
0xF9 0x0173 # LATIN SMALL LETTER U WITH OGONEK
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x00FE # LATIN SMALL LETTER THORN (Icelandic)
|
||||
0xFF 0x0138 # LATIN SMALL LETTER KRA
|
286
backend/tools/data/8859-11.TXT
Normal file
286
backend/tools/data/8859-11.TXT
Normal file
@ -0,0 +1,286 @@
|
||||
# 8859-11.TXT
|
||||
# Date: 2015-12-02 21:55:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-11:2001 to Unicode
|
||||
# Unicode version: 3.2
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 2002 October 7 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-11:2001 characters map into Unicode.
|
||||
#
|
||||
# ISO/IEC 8859-11:2001 is equivalent to TIS 620-2533 (1990) with
|
||||
# the addition of 0xA0 NO-BREAK SPACE.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-11 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-11 order.
|
||||
#
|
||||
# Version history:
|
||||
# 2002 October 7 Created
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x0E01 # THAI CHARACTER KO KAI
|
||||
0xA2 0x0E02 # THAI CHARACTER KHO KHAI
|
||||
0xA3 0x0E03 # THAI CHARACTER KHO KHUAT
|
||||
0xA4 0x0E04 # THAI CHARACTER KHO KHWAI
|
||||
0xA5 0x0E05 # THAI CHARACTER KHO KHON
|
||||
0xA6 0x0E06 # THAI CHARACTER KHO RAKHANG
|
||||
0xA7 0x0E07 # THAI CHARACTER NGO NGU
|
||||
0xA8 0x0E08 # THAI CHARACTER CHO CHAN
|
||||
0xA9 0x0E09 # THAI CHARACTER CHO CHING
|
||||
0xAA 0x0E0A # THAI CHARACTER CHO CHANG
|
||||
0xAB 0x0E0B # THAI CHARACTER SO SO
|
||||
0xAC 0x0E0C # THAI CHARACTER CHO CHOE
|
||||
0xAD 0x0E0D # THAI CHARACTER YO YING
|
||||
0xAE 0x0E0E # THAI CHARACTER DO CHADA
|
||||
0xAF 0x0E0F # THAI CHARACTER TO PATAK
|
||||
0xB0 0x0E10 # THAI CHARACTER THO THAN
|
||||
0xB1 0x0E11 # THAI CHARACTER THO NANGMONTHO
|
||||
0xB2 0x0E12 # THAI CHARACTER THO PHUTHAO
|
||||
0xB3 0x0E13 # THAI CHARACTER NO NEN
|
||||
0xB4 0x0E14 # THAI CHARACTER DO DEK
|
||||
0xB5 0x0E15 # THAI CHARACTER TO TAO
|
||||
0xB6 0x0E16 # THAI CHARACTER THO THUNG
|
||||
0xB7 0x0E17 # THAI CHARACTER THO THAHAN
|
||||
0xB8 0x0E18 # THAI CHARACTER THO THONG
|
||||
0xB9 0x0E19 # THAI CHARACTER NO NU
|
||||
0xBA 0x0E1A # THAI CHARACTER BO BAIMAI
|
||||
0xBB 0x0E1B # THAI CHARACTER PO PLA
|
||||
0xBC 0x0E1C # THAI CHARACTER PHO PHUNG
|
||||
0xBD 0x0E1D # THAI CHARACTER FO FA
|
||||
0xBE 0x0E1E # THAI CHARACTER PHO PHAN
|
||||
0xBF 0x0E1F # THAI CHARACTER FO FAN
|
||||
0xC0 0x0E20 # THAI CHARACTER PHO SAMPHAO
|
||||
0xC1 0x0E21 # THAI CHARACTER MO MA
|
||||
0xC2 0x0E22 # THAI CHARACTER YO YAK
|
||||
0xC3 0x0E23 # THAI CHARACTER RO RUA
|
||||
0xC4 0x0E24 # THAI CHARACTER RU
|
||||
0xC5 0x0E25 # THAI CHARACTER LO LING
|
||||
0xC6 0x0E26 # THAI CHARACTER LU
|
||||
0xC7 0x0E27 # THAI CHARACTER WO WAEN
|
||||
0xC8 0x0E28 # THAI CHARACTER SO SALA
|
||||
0xC9 0x0E29 # THAI CHARACTER SO RUSI
|
||||
0xCA 0x0E2A # THAI CHARACTER SO SUA
|
||||
0xCB 0x0E2B # THAI CHARACTER HO HIP
|
||||
0xCC 0x0E2C # THAI CHARACTER LO CHULA
|
||||
0xCD 0x0E2D # THAI CHARACTER O ANG
|
||||
0xCE 0x0E2E # THAI CHARACTER HO NOKHUK
|
||||
0xCF 0x0E2F # THAI CHARACTER PAIYANNOI
|
||||
0xD0 0x0E30 # THAI CHARACTER SARA A
|
||||
0xD1 0x0E31 # THAI CHARACTER MAI HAN-AKAT
|
||||
0xD2 0x0E32 # THAI CHARACTER SARA AA
|
||||
0xD3 0x0E33 # THAI CHARACTER SARA AM
|
||||
0xD4 0x0E34 # THAI CHARACTER SARA I
|
||||
0xD5 0x0E35 # THAI CHARACTER SARA II
|
||||
0xD6 0x0E36 # THAI CHARACTER SARA UE
|
||||
0xD7 0x0E37 # THAI CHARACTER SARA UEE
|
||||
0xD8 0x0E38 # THAI CHARACTER SARA U
|
||||
0xD9 0x0E39 # THAI CHARACTER SARA UU
|
||||
0xDA 0x0E3A # THAI CHARACTER PHINTHU
|
||||
0xDF 0x0E3F # THAI CURRENCY SYMBOL BAHT
|
||||
0xE0 0x0E40 # THAI CHARACTER SARA E
|
||||
0xE1 0x0E41 # THAI CHARACTER SARA AE
|
||||
0xE2 0x0E42 # THAI CHARACTER SARA O
|
||||
0xE3 0x0E43 # THAI CHARACTER SARA AI MAIMUAN
|
||||
0xE4 0x0E44 # THAI CHARACTER SARA AI MAIMALAI
|
||||
0xE5 0x0E45 # THAI CHARACTER LAKKHANGYAO
|
||||
0xE6 0x0E46 # THAI CHARACTER MAIYAMOK
|
||||
0xE7 0x0E47 # THAI CHARACTER MAITAIKHU
|
||||
0xE8 0x0E48 # THAI CHARACTER MAI EK
|
||||
0xE9 0x0E49 # THAI CHARACTER MAI THO
|
||||
0xEA 0x0E4A # THAI CHARACTER MAI TRI
|
||||
0xEB 0x0E4B # THAI CHARACTER MAI CHATTAWA
|
||||
0xEC 0x0E4C # THAI CHARACTER THANTHAKHAT
|
||||
0xED 0x0E4D # THAI CHARACTER NIKHAHIT
|
||||
0xEE 0x0E4E # THAI CHARACTER YAMAKKAN
|
||||
0xEF 0x0E4F # THAI CHARACTER FONGMAN
|
||||
0xF0 0x0E50 # THAI DIGIT ZERO
|
||||
0xF1 0x0E51 # THAI DIGIT ONE
|
||||
0xF2 0x0E52 # THAI DIGIT TWO
|
||||
0xF3 0x0E53 # THAI DIGIT THREE
|
||||
0xF4 0x0E54 # THAI DIGIT FOUR
|
||||
0xF5 0x0E55 # THAI DIGIT FIVE
|
||||
0xF6 0x0E56 # THAI DIGIT SIX
|
||||
0xF7 0x0E57 # THAI DIGIT SEVEN
|
||||
0xF8 0x0E58 # THAI DIGIT EIGHT
|
||||
0xF9 0x0E59 # THAI DIGIT NINE
|
||||
0xFA 0x0E5A # THAI CHARACTER ANGKHANKHU
|
||||
0xFB 0x0E5B # THAI CHARACTER KHOMUT
|
291
backend/tools/data/8859-13.TXT
Normal file
291
backend/tools/data/8859-13.TXT
Normal file
@ -0,0 +1,291 @@
|
||||
# 8859-13.TXT
|
||||
# Date: 2015-12-02 22:03:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-13:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-13:1998 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-13 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-13 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version: created
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x201D # RIGHT DOUBLE QUOTATION MARK
|
||||
0xA2 0x00A2 # CENT SIGN
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x00A4 # CURRENCY SIGN
|
||||
0xA5 0x201E # DOUBLE LOW-9 QUOTATION MARK
|
||||
0xA6 0x00A6 # BROKEN BAR
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x0156 # LATIN CAPITAL LETTER R WITH CEDILLA
|
||||
0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC # NOT SIGN
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x00AE # REGISTERED SIGN
|
||||
0xAF 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x00B1 # PLUS-MINUS SIGN
|
||||
0xB2 0x00B2 # SUPERSCRIPT TWO
|
||||
0xB3 0x00B3 # SUPERSCRIPT THREE
|
||||
0xB4 0x201C # LEFT DOUBLE QUOTATION MARK
|
||||
0xB5 0x00B5 # MICRO SIGN
|
||||
0xB6 0x00B6 # PILCROW SIGN
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x00F8 # LATIN SMALL LETTER O WITH STROKE
|
||||
0xB9 0x00B9 # SUPERSCRIPT ONE
|
||||
0xBA 0x0157 # LATIN SMALL LETTER R WITH CEDILLA
|
||||
0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x00BC # VULGAR FRACTION ONE QUARTER
|
||||
0xBD 0x00BD # VULGAR FRACTION ONE HALF
|
||||
0xBE 0x00BE # VULGAR FRACTION THREE QUARTERS
|
||||
0xBF 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xC0 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK
|
||||
0xC1 0x012E # LATIN CAPITAL LETTER I WITH OGONEK
|
||||
0xC2 0x0100 # LATIN CAPITAL LETTER A WITH MACRON
|
||||
0xC3 0x0106 # LATIN CAPITAL LETTER C WITH ACUTE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0xC6 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK
|
||||
0xC7 0x0112 # LATIN CAPITAL LETTER E WITH MACRON
|
||||
0xC8 0x010C # LATIN CAPITAL LETTER C WITH CARON
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x0179 # LATIN CAPITAL LETTER Z WITH ACUTE
|
||||
0xCB 0x0116 # LATIN CAPITAL LETTER E WITH DOT ABOVE
|
||||
0xCC 0x0122 # LATIN CAPITAL LETTER G WITH CEDILLA
|
||||
0xCD 0x0136 # LATIN CAPITAL LETTER K WITH CEDILLA
|
||||
0xCE 0x012A # LATIN CAPITAL LETTER I WITH MACRON
|
||||
0xCF 0x013B # LATIN CAPITAL LETTER L WITH CEDILLA
|
||||
0xD0 0x0160 # LATIN CAPITAL LETTER S WITH CARON
|
||||
0xD1 0x0143 # LATIN CAPITAL LETTER N WITH ACUTE
|
||||
0xD2 0x0145 # LATIN CAPITAL LETTER N WITH CEDILLA
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x014C # LATIN CAPITAL LETTER O WITH MACRON
|
||||
0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 # MULTIPLICATION SIGN
|
||||
0xD8 0x0172 # LATIN CAPITAL LETTER U WITH OGONEK
|
||||
0xD9 0x0141 # LATIN CAPITAL LETTER L WITH STROKE
|
||||
0xDA 0x015A # LATIN CAPITAL LETTER S WITH ACUTE
|
||||
0xDB 0x016A # LATIN CAPITAL LETTER U WITH MACRON
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE
|
||||
0xDE 0x017D # LATIN CAPITAL LETTER Z WITH CARON
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S (German)
|
||||
0xE0 0x0105 # LATIN SMALL LETTER A WITH OGONEK
|
||||
0xE1 0x012F # LATIN SMALL LETTER I WITH OGONEK
|
||||
0xE2 0x0101 # LATIN SMALL LETTER A WITH MACRON
|
||||
0xE3 0x0107 # LATIN SMALL LETTER C WITH ACUTE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0xE6 0x0119 # LATIN SMALL LETTER E WITH OGONEK
|
||||
0xE7 0x0113 # LATIN SMALL LETTER E WITH MACRON
|
||||
0xE8 0x010D # LATIN SMALL LETTER C WITH CARON
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x017A # LATIN SMALL LETTER Z WITH ACUTE
|
||||
0xEB 0x0117 # LATIN SMALL LETTER E WITH DOT ABOVE
|
||||
0xEC 0x0123 # LATIN SMALL LETTER G WITH CEDILLA
|
||||
0xED 0x0137 # LATIN SMALL LETTER K WITH CEDILLA
|
||||
0xEE 0x012B # LATIN SMALL LETTER I WITH MACRON
|
||||
0xEF 0x013C # LATIN SMALL LETTER L WITH CEDILLA
|
||||
0xF0 0x0161 # LATIN SMALL LETTER S WITH CARON
|
||||
0xF1 0x0144 # LATIN SMALL LETTER N WITH ACUTE
|
||||
0xF2 0x0146 # LATIN SMALL LETTER N WITH CEDILLA
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x014D # LATIN SMALL LETTER O WITH MACRON
|
||||
0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 # DIVISION SIGN
|
||||
0xF8 0x0173 # LATIN SMALL LETTER U WITH OGONEK
|
||||
0xF9 0x0142 # LATIN SMALL LETTER L WITH STROKE
|
||||
0xFA 0x015B # LATIN SMALL LETTER S WITH ACUTE
|
||||
0xFB 0x016B # LATIN SMALL LETTER U WITH MACRON
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x017C # LATIN SMALL LETTER Z WITH DOT ABOVE
|
||||
0xFE 0x017E # LATIN SMALL LETTER Z WITH CARON
|
||||
0xFF 0x2019 # RIGHT SINGLE QUOTATION MARK
|
293
backend/tools/data/8859-14.TXT
Normal file
293
backend/tools/data/8859-14.TXT
Normal file
@ -0,0 +1,293 @@
|
||||
# 8859-14.TXT
|
||||
# Date: 2015-12-02 22:05:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-14:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/>
|
||||
# Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-14:1998 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-14 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-14 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version: created
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x1E02 # LATIN CAPITAL LETTER B WITH DOT ABOVE
|
||||
0xA2 0x1E03 # LATIN SMALL LETTER B WITH DOT ABOVE
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x010A # LATIN CAPITAL LETTER C WITH DOT ABOVE
|
||||
0xA5 0x010B # LATIN SMALL LETTER C WITH DOT ABOVE
|
||||
0xA6 0x1E0A # LATIN CAPITAL LETTER D WITH DOT ABOVE
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x1E80 # LATIN CAPITAL LETTER W WITH GRAVE
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x1E82 # LATIN CAPITAL LETTER W WITH ACUTE
|
||||
0xAB 0x1E0B # LATIN SMALL LETTER D WITH DOT ABOVE
|
||||
0xAC 0x1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x00AE # REGISTERED SIGN
|
||||
0xAF 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
|
||||
0xB0 0x1E1E # LATIN CAPITAL LETTER F WITH DOT ABOVE
|
||||
0xB1 0x1E1F # LATIN SMALL LETTER F WITH DOT ABOVE
|
||||
0xB2 0x0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE
|
||||
0xB3 0x0121 # LATIN SMALL LETTER G WITH DOT ABOVE
|
||||
0xB4 0x1E40 # LATIN CAPITAL LETTER M WITH DOT ABOVE
|
||||
0xB5 0x1E41 # LATIN SMALL LETTER M WITH DOT ABOVE
|
||||
0xB6 0x00B6 # PILCROW SIGN
|
||||
0xB7 0x1E56 # LATIN CAPITAL LETTER P WITH DOT ABOVE
|
||||
0xB8 0x1E81 # LATIN SMALL LETTER W WITH GRAVE
|
||||
0xB9 0x1E57 # LATIN SMALL LETTER P WITH DOT ABOVE
|
||||
0xBA 0x1E83 # LATIN SMALL LETTER W WITH ACUTE
|
||||
0xBB 0x1E60 # LATIN CAPITAL LETTER S WITH DOT ABOVE
|
||||
0xBC 0x1EF3 # LATIN SMALL LETTER Y WITH GRAVE
|
||||
0xBD 0x1E84 # LATIN CAPITAL LETTER W WITH DIAERESIS
|
||||
0xBE 0x1E85 # LATIN SMALL LETTER W WITH DIAERESIS
|
||||
0xBF 0x1E61 # LATIN SMALL LETTER S WITH DOT ABOVE
|
||||
0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0xC6 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xD0 0x0174 # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
|
||||
0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x1E6A # LATIN CAPITAL LETTER T WITH DOT ABOVE
|
||||
0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xDE 0x0176 # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0xE6 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0xF0 0x0175 # LATIN SMALL LETTER W WITH CIRCUMFLEX
|
||||
0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE
|
||||
0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x1E6B # LATIN SMALL LETTER T WITH DOT ABOVE
|
||||
0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE
|
||||
0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x0177 # LATIN SMALL LETTER Y WITH CIRCUMFLEX
|
||||
0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
|
295
backend/tools/data/8859-15.TXT
Normal file
295
backend/tools/data/8859-15.TXT
Normal file
@ -0,0 +1,295 @@
|
||||
# 8859-15.TXT
|
||||
# Date: 2015-12-02 22:06:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-15:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/>
|
||||
# Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-15:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-15 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-15 order.
|
||||
#
|
||||
# Version history
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version: created
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x00A1 # INVERTED EXCLAMATION MARK
|
||||
0xA2 0x00A2 # CENT SIGN
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x20AC # EURO SIGN
|
||||
0xA5 0x00A5 # YEN SIGN
|
||||
0xA6 0x0160 # LATIN CAPITAL LETTER S WITH CARON
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x0161 # LATIN SMALL LETTER S WITH CARON
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x00AA # FEMININE ORDINAL INDICATOR
|
||||
0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC # NOT SIGN
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x00AE # REGISTERED SIGN
|
||||
0xAF 0x00AF # MACRON
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x00B1 # PLUS-MINUS SIGN
|
||||
0xB2 0x00B2 # SUPERSCRIPT TWO
|
||||
0xB3 0x00B3 # SUPERSCRIPT THREE
|
||||
0xB4 0x017D # LATIN CAPITAL LETTER Z WITH CARON
|
||||
0xB5 0x00B5 # MICRO SIGN
|
||||
0xB6 0x00B6 # PILCROW SIGN
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x017E # LATIN SMALL LETTER Z WITH CARON
|
||||
0xB9 0x00B9 # SUPERSCRIPT ONE
|
||||
0xBA 0x00BA # MASCULINE ORDINAL INDICATOR
|
||||
0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x0152 # LATIN CAPITAL LIGATURE OE
|
||||
0xBD 0x0153 # LATIN SMALL LIGATURE OE
|
||||
0xBE 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
|
||||
0xBF 0x00BF # INVERTED QUESTION MARK
|
||||
0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0xC6 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xD0 0x00D0 # LATIN CAPITAL LETTER ETH
|
||||
0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 # MULTIPLICATION SIGN
|
||||
0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xDE 0x00DE # LATIN CAPITAL LETTER THORN
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0xE6 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0xF0 0x00F0 # LATIN SMALL LETTER ETH
|
||||
0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE
|
||||
0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 # DIVISION SIGN
|
||||
0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE
|
||||
0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x00FE # LATIN SMALL LETTER THORN
|
||||
0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
|
293
backend/tools/data/8859-16.TXT
Normal file
293
backend/tools/data/8859-16.TXT
Normal file
@ -0,0 +1,293 @@
|
||||
# 8859-16.TXT
|
||||
# Date: 2015-12-02 22:08:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-16:2001 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 2001 July 26 (header updated: 2015 December 02)
|
||||
# Authors: Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/>
|
||||
#
|
||||
# Copyright (c) 1999-2001 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-16:2001 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-16 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-16 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version: created
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK
|
||||
0xA2 0x0105 # LATIN SMALL LETTER A WITH OGONEK
|
||||
0xA3 0x0141 # LATIN CAPITAL LETTER L WITH STROKE
|
||||
0xA4 0x20AC # EURO SIGN
|
||||
0xA5 0x201E # DOUBLE LOW-9 QUOTATION MARK
|
||||
0xA6 0x0160 # LATIN CAPITAL LETTER S WITH CARON
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x0161 # LATIN SMALL LETTER S WITH CARON
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x0218 # LATIN CAPITAL LETTER S WITH COMMA BELOW
|
||||
0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x0179 # LATIN CAPITAL LETTER Z WITH ACUTE
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x017A # LATIN SMALL LETTER Z WITH ACUTE
|
||||
0xAF 0x017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x00B1 # PLUS-MINUS SIGN
|
||||
0xB2 0x010C # LATIN CAPITAL LETTER C WITH CARON
|
||||
0xB3 0x0142 # LATIN SMALL LETTER L WITH STROKE
|
||||
0xB4 0x017D # LATIN CAPITAL LETTER Z WITH CARON
|
||||
0xB5 0x201D # RIGHT DOUBLE QUOTATION MARK
|
||||
0xB6 0x00B6 # PILCROW SIGN
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x017E # LATIN SMALL LETTER Z WITH CARON
|
||||
0xB9 0x010D # LATIN SMALL LETTER C WITH CARON
|
||||
0xBA 0x0219 # LATIN SMALL LETTER S WITH COMMA BELOW
|
||||
0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x0152 # LATIN CAPITAL LIGATURE OE
|
||||
0xBD 0x0153 # LATIN SMALL LIGATURE OE
|
||||
0xBE 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
|
||||
0xBF 0x017C # LATIN SMALL LETTER Z WITH DOT ABOVE
|
||||
0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x0102 # LATIN CAPITAL LETTER A WITH BREVE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x0106 # LATIN CAPITAL LETTER C WITH ACUTE
|
||||
0xC6 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xD0 0x0110 # LATIN CAPITAL LETTER D WITH STROKE
|
||||
0xD1 0x0143 # LATIN CAPITAL LETTER N WITH ACUTE
|
||||
0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x0150 # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x015A # LATIN CAPITAL LETTER S WITH ACUTE
|
||||
0xD8 0x0170 # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
|
||||
0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK
|
||||
0xDE 0x021A # LATIN CAPITAL LETTER T WITH COMMA BELOW
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x0103 # LATIN SMALL LETTER A WITH BREVE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x0107 # LATIN SMALL LETTER C WITH ACUTE
|
||||
0xE6 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0xF0 0x0111 # LATIN SMALL LETTER D WITH STROKE
|
||||
0xF1 0x0144 # LATIN SMALL LETTER N WITH ACUTE
|
||||
0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x0151 # LATIN SMALL LETTER O WITH DOUBLE ACUTE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x015B # LATIN SMALL LETTER S WITH ACUTE
|
||||
0xF8 0x0171 # LATIN SMALL LETTER U WITH DOUBLE ACUTE
|
||||
0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x0119 # LATIN SMALL LETTER E WITH OGONEK
|
||||
0xFE 0x021B # LATIN SMALL LETTER T WITH COMMA BELOW
|
||||
0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
292
backend/tools/data/8859-2.TXT
Normal file
292
backend/tools/data/8859-2.TXT
Normal file
@ -0,0 +1,292 @@
|
||||
# 8859-2.TXT
|
||||
# Date: 2015-12-02 21:34:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO 8859-2:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-2:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-2 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-2 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version: updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK
|
||||
0xA2 0x02D8 # BREVE
|
||||
0xA3 0x0141 # LATIN CAPITAL LETTER L WITH STROKE
|
||||
0xA4 0x00A4 # CURRENCY SIGN
|
||||
0xA5 0x013D # LATIN CAPITAL LETTER L WITH CARON
|
||||
0xA6 0x015A # LATIN CAPITAL LETTER S WITH ACUTE
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x00A8 # DIAERESIS
|
||||
0xA9 0x0160 # LATIN CAPITAL LETTER S WITH CARON
|
||||
0xAA 0x015E # LATIN CAPITAL LETTER S WITH CEDILLA
|
||||
0xAB 0x0164 # LATIN CAPITAL LETTER T WITH CARON
|
||||
0xAC 0x0179 # LATIN CAPITAL LETTER Z WITH ACUTE
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x017D # LATIN CAPITAL LETTER Z WITH CARON
|
||||
0xAF 0x017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x0105 # LATIN SMALL LETTER A WITH OGONEK
|
||||
0xB2 0x02DB # OGONEK
|
||||
0xB3 0x0142 # LATIN SMALL LETTER L WITH STROKE
|
||||
0xB4 0x00B4 # ACUTE ACCENT
|
||||
0xB5 0x013E # LATIN SMALL LETTER L WITH CARON
|
||||
0xB6 0x015B # LATIN SMALL LETTER S WITH ACUTE
|
||||
0xB7 0x02C7 # CARON
|
||||
0xB8 0x00B8 # CEDILLA
|
||||
0xB9 0x0161 # LATIN SMALL LETTER S WITH CARON
|
||||
0xBA 0x015F # LATIN SMALL LETTER S WITH CEDILLA
|
||||
0xBB 0x0165 # LATIN SMALL LETTER T WITH CARON
|
||||
0xBC 0x017A # LATIN SMALL LETTER Z WITH ACUTE
|
||||
0xBD 0x02DD # DOUBLE ACUTE ACCENT
|
||||
0xBE 0x017E # LATIN SMALL LETTER Z WITH CARON
|
||||
0xBF 0x017C # LATIN SMALL LETTER Z WITH DOT ABOVE
|
||||
0xC0 0x0154 # LATIN CAPITAL LETTER R WITH ACUTE
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x0102 # LATIN CAPITAL LETTER A WITH BREVE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x0139 # LATIN CAPITAL LETTER L WITH ACUTE
|
||||
0xC6 0x0106 # LATIN CAPITAL LETTER C WITH ACUTE
|
||||
0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x010C # LATIN CAPITAL LETTER C WITH CARON
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x011A # LATIN CAPITAL LETTER E WITH CARON
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x010E # LATIN CAPITAL LETTER D WITH CARON
|
||||
0xD0 0x0110 # LATIN CAPITAL LETTER D WITH STROKE
|
||||
0xD1 0x0143 # LATIN CAPITAL LETTER N WITH ACUTE
|
||||
0xD2 0x0147 # LATIN CAPITAL LETTER N WITH CARON
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x0150 # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 # MULTIPLICATION SIGN
|
||||
0xD8 0x0158 # LATIN CAPITAL LETTER R WITH CARON
|
||||
0xD9 0x016E # LATIN CAPITAL LETTER U WITH RING ABOVE
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x0170 # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xDE 0x0162 # LATIN CAPITAL LETTER T WITH CEDILLA
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x0155 # LATIN SMALL LETTER R WITH ACUTE
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x0103 # LATIN SMALL LETTER A WITH BREVE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x013A # LATIN SMALL LETTER L WITH ACUTE
|
||||
0xE6 0x0107 # LATIN SMALL LETTER C WITH ACUTE
|
||||
0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x010D # LATIN SMALL LETTER C WITH CARON
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x0119 # LATIN SMALL LETTER E WITH OGONEK
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x011B # LATIN SMALL LETTER E WITH CARON
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x010F # LATIN SMALL LETTER D WITH CARON
|
||||
0xF0 0x0111 # LATIN SMALL LETTER D WITH STROKE
|
||||
0xF1 0x0144 # LATIN SMALL LETTER N WITH ACUTE
|
||||
0xF2 0x0148 # LATIN SMALL LETTER N WITH CARON
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x0151 # LATIN SMALL LETTER O WITH DOUBLE ACUTE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 # DIVISION SIGN
|
||||
0xF8 0x0159 # LATIN SMALL LETTER R WITH CARON
|
||||
0xF9 0x016F # LATIN SMALL LETTER U WITH RING ABOVE
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x0171 # LATIN SMALL LETTER U WITH DOUBLE ACUTE
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x0163 # LATIN SMALL LETTER T WITH CEDILLA
|
||||
0xFF 0x02D9 # DOT ABOVE
|
285
backend/tools/data/8859-3.TXT
Normal file
285
backend/tools/data/8859-3.TXT
Normal file
@ -0,0 +1,285 @@
|
||||
# 8859-3.TXT
|
||||
# Date: 2015-12-02 21:39:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-3:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-3:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-3 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-3 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version: updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x0126 # LATIN CAPITAL LETTER H WITH STROKE
|
||||
0xA2 0x02D8 # BREVE
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x00A4 # CURRENCY SIGN
|
||||
0xA6 0x0124 # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x00A8 # DIAERESIS
|
||||
0xA9 0x0130 # LATIN CAPITAL LETTER I WITH DOT ABOVE
|
||||
0xAA 0x015E # LATIN CAPITAL LETTER S WITH CEDILLA
|
||||
0xAB 0x011E # LATIN CAPITAL LETTER G WITH BREVE
|
||||
0xAC 0x0134 # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAF 0x017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x0127 # LATIN SMALL LETTER H WITH STROKE
|
||||
0xB2 0x00B2 # SUPERSCRIPT TWO
|
||||
0xB3 0x00B3 # SUPERSCRIPT THREE
|
||||
0xB4 0x00B4 # ACUTE ACCENT
|
||||
0xB5 0x00B5 # MICRO SIGN
|
||||
0xB6 0x0125 # LATIN SMALL LETTER H WITH CIRCUMFLEX
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x00B8 # CEDILLA
|
||||
0xB9 0x0131 # LATIN SMALL LETTER DOTLESS I
|
||||
0xBA 0x015F # LATIN SMALL LETTER S WITH CEDILLA
|
||||
0xBB 0x011F # LATIN SMALL LETTER G WITH BREVE
|
||||
0xBC 0x0135 # LATIN SMALL LETTER J WITH CIRCUMFLEX
|
||||
0xBD 0x00BD # VULGAR FRACTION ONE HALF
|
||||
0xBF 0x017C # LATIN SMALL LETTER Z WITH DOT ABOVE
|
||||
0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x010A # LATIN CAPITAL LETTER C WITH DOT ABOVE
|
||||
0xC6 0x0108 # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
|
||||
0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 # MULTIPLICATION SIGN
|
||||
0xD8 0x011C # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
|
||||
0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x016C # LATIN CAPITAL LETTER U WITH BREVE
|
||||
0xDE 0x015C # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x010B # LATIN SMALL LETTER C WITH DOT ABOVE
|
||||
0xE6 0x0109 # LATIN SMALL LETTER C WITH CIRCUMFLEX
|
||||
0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE
|
||||
0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x0121 # LATIN SMALL LETTER G WITH DOT ABOVE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 # DIVISION SIGN
|
||||
0xF8 0x011D # LATIN SMALL LETTER G WITH CIRCUMFLEX
|
||||
0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x016D # LATIN SMALL LETTER U WITH BREVE
|
||||
0xFE 0x015D # LATIN SMALL LETTER S WITH CIRCUMFLEX
|
||||
0xFF 0x02D9 # DOT ABOVE
|
292
backend/tools/data/8859-4.TXT
Normal file
292
backend/tools/data/8859-4.TXT
Normal file
@ -0,0 +1,292 @@
|
||||
# 8859-4.TXT
|
||||
# Date: 2015-12-02 21:41:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-4:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-4:1998 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-4 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-4 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version: updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK
|
||||
0xA2 0x0138 # LATIN SMALL LETTER KRA
|
||||
0xA3 0x0156 # LATIN CAPITAL LETTER R WITH CEDILLA
|
||||
0xA4 0x00A4 # CURRENCY SIGN
|
||||
0xA5 0x0128 # LATIN CAPITAL LETTER I WITH TILDE
|
||||
0xA6 0x013B # LATIN CAPITAL LETTER L WITH CEDILLA
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x00A8 # DIAERESIS
|
||||
0xA9 0x0160 # LATIN CAPITAL LETTER S WITH CARON
|
||||
0xAA 0x0112 # LATIN CAPITAL LETTER E WITH MACRON
|
||||
0xAB 0x0122 # LATIN CAPITAL LETTER G WITH CEDILLA
|
||||
0xAC 0x0166 # LATIN CAPITAL LETTER T WITH STROKE
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x017D # LATIN CAPITAL LETTER Z WITH CARON
|
||||
0xAF 0x00AF # MACRON
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x0105 # LATIN SMALL LETTER A WITH OGONEK
|
||||
0xB2 0x02DB # OGONEK
|
||||
0xB3 0x0157 # LATIN SMALL LETTER R WITH CEDILLA
|
||||
0xB4 0x00B4 # ACUTE ACCENT
|
||||
0xB5 0x0129 # LATIN SMALL LETTER I WITH TILDE
|
||||
0xB6 0x013C # LATIN SMALL LETTER L WITH CEDILLA
|
||||
0xB7 0x02C7 # CARON
|
||||
0xB8 0x00B8 # CEDILLA
|
||||
0xB9 0x0161 # LATIN SMALL LETTER S WITH CARON
|
||||
0xBA 0x0113 # LATIN SMALL LETTER E WITH MACRON
|
||||
0xBB 0x0123 # LATIN SMALL LETTER G WITH CEDILLA
|
||||
0xBC 0x0167 # LATIN SMALL LETTER T WITH STROKE
|
||||
0xBD 0x014A # LATIN CAPITAL LETTER ENG
|
||||
0xBE 0x017E # LATIN SMALL LETTER Z WITH CARON
|
||||
0xBF 0x014B # LATIN SMALL LETTER ENG
|
||||
0xC0 0x0100 # LATIN CAPITAL LETTER A WITH MACRON
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0xC6 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xC7 0x012E # LATIN CAPITAL LETTER I WITH OGONEK
|
||||
0xC8 0x010C # LATIN CAPITAL LETTER C WITH CARON
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x0116 # LATIN CAPITAL LETTER E WITH DOT ABOVE
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x012A # LATIN CAPITAL LETTER I WITH MACRON
|
||||
0xD0 0x0110 # LATIN CAPITAL LETTER D WITH STROKE
|
||||
0xD1 0x0145 # LATIN CAPITAL LETTER N WITH CEDILLA
|
||||
0xD2 0x014C # LATIN CAPITAL LETTER O WITH MACRON
|
||||
0xD3 0x0136 # LATIN CAPITAL LETTER K WITH CEDILLA
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 # MULTIPLICATION SIGN
|
||||
0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xD9 0x0172 # LATIN CAPITAL LETTER U WITH OGONEK
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x0168 # LATIN CAPITAL LETTER U WITH TILDE
|
||||
0xDE 0x016A # LATIN CAPITAL LETTER U WITH MACRON
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x0101 # LATIN SMALL LETTER A WITH MACRON
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0xE6 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xE7 0x012F # LATIN SMALL LETTER I WITH OGONEK
|
||||
0xE8 0x010D # LATIN SMALL LETTER C WITH CARON
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x0119 # LATIN SMALL LETTER E WITH OGONEK
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x0117 # LATIN SMALL LETTER E WITH DOT ABOVE
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x012B # LATIN SMALL LETTER I WITH MACRON
|
||||
0xF0 0x0111 # LATIN SMALL LETTER D WITH STROKE
|
||||
0xF1 0x0146 # LATIN SMALL LETTER N WITH CEDILLA
|
||||
0xF2 0x014D # LATIN SMALL LETTER O WITH MACRON
|
||||
0xF3 0x0137 # LATIN SMALL LETTER K WITH CEDILLA
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 # DIVISION SIGN
|
||||
0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE
|
||||
0xF9 0x0173 # LATIN SMALL LETTER U WITH OGONEK
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x0169 # LATIN SMALL LETTER U WITH TILDE
|
||||
0xFE 0x016B # LATIN SMALL LETTER U WITH MACRON
|
||||
0xFF 0x02D9 # DOT ABOVE
|
292
backend/tools/data/8859-5.TXT
Normal file
292
backend/tools/data/8859-5.TXT
Normal file
@ -0,0 +1,292 @@
|
||||
# 8859-5.TXT
|
||||
# Date: 2015-12-02 21:43:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO 8859-5:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-5:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-5 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-5 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version: updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x0401 # CYRILLIC CAPITAL LETTER IO
|
||||
0xA2 0x0402 # CYRILLIC CAPITAL LETTER DJE
|
||||
0xA3 0x0403 # CYRILLIC CAPITAL LETTER GJE
|
||||
0xA4 0x0404 # CYRILLIC CAPITAL LETTER UKRAINIAN IE
|
||||
0xA5 0x0405 # CYRILLIC CAPITAL LETTER DZE
|
||||
0xA6 0x0406 # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
|
||||
0xA7 0x0407 # CYRILLIC CAPITAL LETTER YI
|
||||
0xA8 0x0408 # CYRILLIC CAPITAL LETTER JE
|
||||
0xA9 0x0409 # CYRILLIC CAPITAL LETTER LJE
|
||||
0xAA 0x040A # CYRILLIC CAPITAL LETTER NJE
|
||||
0xAB 0x040B # CYRILLIC CAPITAL LETTER TSHE
|
||||
0xAC 0x040C # CYRILLIC CAPITAL LETTER KJE
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x040E # CYRILLIC CAPITAL LETTER SHORT U
|
||||
0xAF 0x040F # CYRILLIC CAPITAL LETTER DZHE
|
||||
0xB0 0x0410 # CYRILLIC CAPITAL LETTER A
|
||||
0xB1 0x0411 # CYRILLIC CAPITAL LETTER BE
|
||||
0xB2 0x0412 # CYRILLIC CAPITAL LETTER VE
|
||||
0xB3 0x0413 # CYRILLIC CAPITAL LETTER GHE
|
||||
0xB4 0x0414 # CYRILLIC CAPITAL LETTER DE
|
||||
0xB5 0x0415 # CYRILLIC CAPITAL LETTER IE
|
||||
0xB6 0x0416 # CYRILLIC CAPITAL LETTER ZHE
|
||||
0xB7 0x0417 # CYRILLIC CAPITAL LETTER ZE
|
||||
0xB8 0x0418 # CYRILLIC CAPITAL LETTER I
|
||||
0xB9 0x0419 # CYRILLIC CAPITAL LETTER SHORT I
|
||||
0xBA 0x041A # CYRILLIC CAPITAL LETTER KA
|
||||
0xBB 0x041B # CYRILLIC CAPITAL LETTER EL
|
||||
0xBC 0x041C # CYRILLIC CAPITAL LETTER EM
|
||||
0xBD 0x041D # CYRILLIC CAPITAL LETTER EN
|
||||
0xBE 0x041E # CYRILLIC CAPITAL LETTER O
|
||||
0xBF 0x041F # CYRILLIC CAPITAL LETTER PE
|
||||
0xC0 0x0420 # CYRILLIC CAPITAL LETTER ER
|
||||
0xC1 0x0421 # CYRILLIC CAPITAL LETTER ES
|
||||
0xC2 0x0422 # CYRILLIC CAPITAL LETTER TE
|
||||
0xC3 0x0423 # CYRILLIC CAPITAL LETTER U
|
||||
0xC4 0x0424 # CYRILLIC CAPITAL LETTER EF
|
||||
0xC5 0x0425 # CYRILLIC CAPITAL LETTER HA
|
||||
0xC6 0x0426 # CYRILLIC CAPITAL LETTER TSE
|
||||
0xC7 0x0427 # CYRILLIC CAPITAL LETTER CHE
|
||||
0xC8 0x0428 # CYRILLIC CAPITAL LETTER SHA
|
||||
0xC9 0x0429 # CYRILLIC CAPITAL LETTER SHCHA
|
||||
0xCA 0x042A # CYRILLIC CAPITAL LETTER HARD SIGN
|
||||
0xCB 0x042B # CYRILLIC CAPITAL LETTER YERU
|
||||
0xCC 0x042C # CYRILLIC CAPITAL LETTER SOFT SIGN
|
||||
0xCD 0x042D # CYRILLIC CAPITAL LETTER E
|
||||
0xCE 0x042E # CYRILLIC CAPITAL LETTER YU
|
||||
0xCF 0x042F # CYRILLIC CAPITAL LETTER YA
|
||||
0xD0 0x0430 # CYRILLIC SMALL LETTER A
|
||||
0xD1 0x0431 # CYRILLIC SMALL LETTER BE
|
||||
0xD2 0x0432 # CYRILLIC SMALL LETTER VE
|
||||
0xD3 0x0433 # CYRILLIC SMALL LETTER GHE
|
||||
0xD4 0x0434 # CYRILLIC SMALL LETTER DE
|
||||
0xD5 0x0435 # CYRILLIC SMALL LETTER IE
|
||||
0xD6 0x0436 # CYRILLIC SMALL LETTER ZHE
|
||||
0xD7 0x0437 # CYRILLIC SMALL LETTER ZE
|
||||
0xD8 0x0438 # CYRILLIC SMALL LETTER I
|
||||
0xD9 0x0439 # CYRILLIC SMALL LETTER SHORT I
|
||||
0xDA 0x043A # CYRILLIC SMALL LETTER KA
|
||||
0xDB 0x043B # CYRILLIC SMALL LETTER EL
|
||||
0xDC 0x043C # CYRILLIC SMALL LETTER EM
|
||||
0xDD 0x043D # CYRILLIC SMALL LETTER EN
|
||||
0xDE 0x043E # CYRILLIC SMALL LETTER O
|
||||
0xDF 0x043F # CYRILLIC SMALL LETTER PE
|
||||
0xE0 0x0440 # CYRILLIC SMALL LETTER ER
|
||||
0xE1 0x0441 # CYRILLIC SMALL LETTER ES
|
||||
0xE2 0x0442 # CYRILLIC SMALL LETTER TE
|
||||
0xE3 0x0443 # CYRILLIC SMALL LETTER U
|
||||
0xE4 0x0444 # CYRILLIC SMALL LETTER EF
|
||||
0xE5 0x0445 # CYRILLIC SMALL LETTER HA
|
||||
0xE6 0x0446 # CYRILLIC SMALL LETTER TSE
|
||||
0xE7 0x0447 # CYRILLIC SMALL LETTER CHE
|
||||
0xE8 0x0448 # CYRILLIC SMALL LETTER SHA
|
||||
0xE9 0x0449 # CYRILLIC SMALL LETTER SHCHA
|
||||
0xEA 0x044A # CYRILLIC SMALL LETTER HARD SIGN
|
||||
0xEB 0x044B # CYRILLIC SMALL LETTER YERU
|
||||
0xEC 0x044C # CYRILLIC SMALL LETTER SOFT SIGN
|
||||
0xED 0x044D # CYRILLIC SMALL LETTER E
|
||||
0xEE 0x044E # CYRILLIC SMALL LETTER YU
|
||||
0xEF 0x044F # CYRILLIC SMALL LETTER YA
|
||||
0xF0 0x2116 # NUMERO SIGN
|
||||
0xF1 0x0451 # CYRILLIC SMALL LETTER IO
|
||||
0xF2 0x0452 # CYRILLIC SMALL LETTER DJE
|
||||
0xF3 0x0453 # CYRILLIC SMALL LETTER GJE
|
||||
0xF4 0x0454 # CYRILLIC SMALL LETTER UKRAINIAN IE
|
||||
0xF5 0x0455 # CYRILLIC SMALL LETTER DZE
|
||||
0xF6 0x0456 # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
|
||||
0xF7 0x0457 # CYRILLIC SMALL LETTER YI
|
||||
0xF8 0x0458 # CYRILLIC SMALL LETTER JE
|
||||
0xF9 0x0459 # CYRILLIC SMALL LETTER LJE
|
||||
0xFA 0x045A # CYRILLIC SMALL LETTER NJE
|
||||
0xFB 0x045B # CYRILLIC SMALL LETTER TSHE
|
||||
0xFC 0x045C # CYRILLIC SMALL LETTER KJE
|
||||
0xFD 0x00A7 # SECTION SIGN
|
||||
0xFE 0x045E # CYRILLIC SMALL LETTER SHORT U
|
||||
0xFF 0x045F # CYRILLIC SMALL LETTER DZHE
|
249
backend/tools/data/8859-6.TXT
Normal file
249
backend/tools/data/8859-6.TXT
Normal file
@ -0,0 +1,249 @@
|
||||
# 8859-6.TXT
|
||||
# Date: 2015-12-02 21:44:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO 8859-6:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-6:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-6 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-6 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version: updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 0x30..0x39 remapped to the ASCII digits (U+0030..U+0039) instead
|
||||
# of the Arabic digits (U+0660..U+0669).
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA4 0x00A4 # CURRENCY SIGN
|
||||
0xAC 0x060C # ARABIC COMMA
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xBB 0x061B # ARABIC SEMICOLON
|
||||
0xBF 0x061F # ARABIC QUESTION MARK
|
||||
0xC1 0x0621 # ARABIC LETTER HAMZA
|
||||
0xC2 0x0622 # ARABIC LETTER ALEF WITH MADDA ABOVE
|
||||
0xC3 0x0623 # ARABIC LETTER ALEF WITH HAMZA ABOVE
|
||||
0xC4 0x0624 # ARABIC LETTER WAW WITH HAMZA ABOVE
|
||||
0xC5 0x0625 # ARABIC LETTER ALEF WITH HAMZA BELOW
|
||||
0xC6 0x0626 # ARABIC LETTER YEH WITH HAMZA ABOVE
|
||||
0xC7 0x0627 # ARABIC LETTER ALEF
|
||||
0xC8 0x0628 # ARABIC LETTER BEH
|
||||
0xC9 0x0629 # ARABIC LETTER TEH MARBUTA
|
||||
0xCA 0x062A # ARABIC LETTER TEH
|
||||
0xCB 0x062B # ARABIC LETTER THEH
|
||||
0xCC 0x062C # ARABIC LETTER JEEM
|
||||
0xCD 0x062D # ARABIC LETTER HAH
|
||||
0xCE 0x062E # ARABIC LETTER KHAH
|
||||
0xCF 0x062F # ARABIC LETTER DAL
|
||||
0xD0 0x0630 # ARABIC LETTER THAL
|
||||
0xD1 0x0631 # ARABIC LETTER REH
|
||||
0xD2 0x0632 # ARABIC LETTER ZAIN
|
||||
0xD3 0x0633 # ARABIC LETTER SEEN
|
||||
0xD4 0x0634 # ARABIC LETTER SHEEN
|
||||
0xD5 0x0635 # ARABIC LETTER SAD
|
||||
0xD6 0x0636 # ARABIC LETTER DAD
|
||||
0xD7 0x0637 # ARABIC LETTER TAH
|
||||
0xD8 0x0638 # ARABIC LETTER ZAH
|
||||
0xD9 0x0639 # ARABIC LETTER AIN
|
||||
0xDA 0x063A # ARABIC LETTER GHAIN
|
||||
0xE0 0x0640 # ARABIC TATWEEL
|
||||
0xE1 0x0641 # ARABIC LETTER FEH
|
||||
0xE2 0x0642 # ARABIC LETTER QAF
|
||||
0xE3 0x0643 # ARABIC LETTER KAF
|
||||
0xE4 0x0644 # ARABIC LETTER LAM
|
||||
0xE5 0x0645 # ARABIC LETTER MEEM
|
||||
0xE6 0x0646 # ARABIC LETTER NOON
|
||||
0xE7 0x0647 # ARABIC LETTER HEH
|
||||
0xE8 0x0648 # ARABIC LETTER WAW
|
||||
0xE9 0x0649 # ARABIC LETTER ALEF MAKSURA
|
||||
0xEA 0x064A # ARABIC LETTER YEH
|
||||
0xEB 0x064B # ARABIC FATHATAN
|
||||
0xEC 0x064C # ARABIC DAMMATAN
|
||||
0xED 0x064D # ARABIC KASRATAN
|
||||
0xEE 0x064E # ARABIC FATHA
|
||||
0xEF 0x064F # ARABIC DAMMA
|
||||
0xF0 0x0650 # ARABIC KASRA
|
||||
0xF1 0x0651 # ARABIC SHADDA
|
||||
0xF2 0x0652 # ARABIC SUKUN
|
299
backend/tools/data/8859-7.TXT
Normal file
299
backend/tools/data/8859-7.TXT
Normal file
@ -0,0 +1,299 @@
|
||||
# 8859-7.TXT
|
||||
# Date: 2015-12-02 21:47:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO 8859-7:2003 to Unicode
|
||||
# Unicode version: 4.0
|
||||
# Table version: 3.0
|
||||
# Table format: Format A
|
||||
# Date: 2003-Nov-12 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO 8859-7:2003 characters map into Unicode.
|
||||
#
|
||||
# ISO 8859-7:1987 is equivalent to ISO-IR-126, ELOT 928,
|
||||
# and ECMA 118. ISO 8859-7:2003 adds two currency signs
|
||||
# and one other character not in the earlier standard.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO 8859-7 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO 8859-7 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# Remap 0xA1 to U+2018 (instead of 0x02BD) to match text of 8859-7
|
||||
# Remap 0xA2 to U+2019 (instead of 0x02BC) to match text of 8859-7
|
||||
#
|
||||
# 2.0 version updates 1.0 version by adding mappings for the
|
||||
# three newly added characters 0xA4, 0xA5, 0xAA.
|
||||
#
|
||||
# 3.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x2018 # LEFT SINGLE QUOTATION MARK
|
||||
0xA2 0x2019 # RIGHT SINGLE QUOTATION MARK
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x20AC # EURO SIGN
|
||||
0xA5 0x20AF # DRACHMA SIGN
|
||||
0xA6 0x00A6 # BROKEN BAR
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x00A8 # DIAERESIS
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x037A # GREEK YPOGEGRAMMENI
|
||||
0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC # NOT SIGN
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAF 0x2015 # HORIZONTAL BAR
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x00B1 # PLUS-MINUS SIGN
|
||||
0xB2 0x00B2 # SUPERSCRIPT TWO
|
||||
0xB3 0x00B3 # SUPERSCRIPT THREE
|
||||
0xB4 0x0384 # GREEK TONOS
|
||||
0xB5 0x0385 # GREEK DIALYTIKA TONOS
|
||||
0xB6 0x0386 # GREEK CAPITAL LETTER ALPHA WITH TONOS
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x0388 # GREEK CAPITAL LETTER EPSILON WITH TONOS
|
||||
0xB9 0x0389 # GREEK CAPITAL LETTER ETA WITH TONOS
|
||||
0xBA 0x038A # GREEK CAPITAL LETTER IOTA WITH TONOS
|
||||
0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x038C # GREEK CAPITAL LETTER OMICRON WITH TONOS
|
||||
0xBD 0x00BD # VULGAR FRACTION ONE HALF
|
||||
0xBE 0x038E # GREEK CAPITAL LETTER UPSILON WITH TONOS
|
||||
0xBF 0x038F # GREEK CAPITAL LETTER OMEGA WITH TONOS
|
||||
0xC0 0x0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
|
||||
0xC1 0x0391 # GREEK CAPITAL LETTER ALPHA
|
||||
0xC2 0x0392 # GREEK CAPITAL LETTER BETA
|
||||
0xC3 0x0393 # GREEK CAPITAL LETTER GAMMA
|
||||
0xC4 0x0394 # GREEK CAPITAL LETTER DELTA
|
||||
0xC5 0x0395 # GREEK CAPITAL LETTER EPSILON
|
||||
0xC6 0x0396 # GREEK CAPITAL LETTER ZETA
|
||||
0xC7 0x0397 # GREEK CAPITAL LETTER ETA
|
||||
0xC8 0x0398 # GREEK CAPITAL LETTER THETA
|
||||
0xC9 0x0399 # GREEK CAPITAL LETTER IOTA
|
||||
0xCA 0x039A # GREEK CAPITAL LETTER KAPPA
|
||||
0xCB 0x039B # GREEK CAPITAL LETTER LAMDA
|
||||
0xCC 0x039C # GREEK CAPITAL LETTER MU
|
||||
0xCD 0x039D # GREEK CAPITAL LETTER NU
|
||||
0xCE 0x039E # GREEK CAPITAL LETTER XI
|
||||
0xCF 0x039F # GREEK CAPITAL LETTER OMICRON
|
||||
0xD0 0x03A0 # GREEK CAPITAL LETTER PI
|
||||
0xD1 0x03A1 # GREEK CAPITAL LETTER RHO
|
||||
0xD3 0x03A3 # GREEK CAPITAL LETTER SIGMA
|
||||
0xD4 0x03A4 # GREEK CAPITAL LETTER TAU
|
||||
0xD5 0x03A5 # GREEK CAPITAL LETTER UPSILON
|
||||
0xD6 0x03A6 # GREEK CAPITAL LETTER PHI
|
||||
0xD7 0x03A7 # GREEK CAPITAL LETTER CHI
|
||||
0xD8 0x03A8 # GREEK CAPITAL LETTER PSI
|
||||
0xD9 0x03A9 # GREEK CAPITAL LETTER OMEGA
|
||||
0xDA 0x03AA # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
|
||||
0xDB 0x03AB # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
|
||||
0xDC 0x03AC # GREEK SMALL LETTER ALPHA WITH TONOS
|
||||
0xDD 0x03AD # GREEK SMALL LETTER EPSILON WITH TONOS
|
||||
0xDE 0x03AE # GREEK SMALL LETTER ETA WITH TONOS
|
||||
0xDF 0x03AF # GREEK SMALL LETTER IOTA WITH TONOS
|
||||
0xE0 0x03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
|
||||
0xE1 0x03B1 # GREEK SMALL LETTER ALPHA
|
||||
0xE2 0x03B2 # GREEK SMALL LETTER BETA
|
||||
0xE3 0x03B3 # GREEK SMALL LETTER GAMMA
|
||||
0xE4 0x03B4 # GREEK SMALL LETTER DELTA
|
||||
0xE5 0x03B5 # GREEK SMALL LETTER EPSILON
|
||||
0xE6 0x03B6 # GREEK SMALL LETTER ZETA
|
||||
0xE7 0x03B7 # GREEK SMALL LETTER ETA
|
||||
0xE8 0x03B8 # GREEK SMALL LETTER THETA
|
||||
0xE9 0x03B9 # GREEK SMALL LETTER IOTA
|
||||
0xEA 0x03BA # GREEK SMALL LETTER KAPPA
|
||||
0xEB 0x03BB # GREEK SMALL LETTER LAMDA
|
||||
0xEC 0x03BC # GREEK SMALL LETTER MU
|
||||
0xED 0x03BD # GREEK SMALL LETTER NU
|
||||
0xEE 0x03BE # GREEK SMALL LETTER XI
|
||||
0xEF 0x03BF # GREEK SMALL LETTER OMICRON
|
||||
0xF0 0x03C0 # GREEK SMALL LETTER PI
|
||||
0xF1 0x03C1 # GREEK SMALL LETTER RHO
|
||||
0xF2 0x03C2 # GREEK SMALL LETTER FINAL SIGMA
|
||||
0xF3 0x03C3 # GREEK SMALL LETTER SIGMA
|
||||
0xF4 0x03C4 # GREEK SMALL LETTER TAU
|
||||
0xF5 0x03C5 # GREEK SMALL LETTER UPSILON
|
||||
0xF6 0x03C6 # GREEK SMALL LETTER PHI
|
||||
0xF7 0x03C7 # GREEK SMALL LETTER CHI
|
||||
0xF8 0x03C8 # GREEK SMALL LETTER PSI
|
||||
0xF9 0x03C9 # GREEK SMALL LETTER OMEGA
|
||||
0xFA 0x03CA # GREEK SMALL LETTER IOTA WITH DIALYTIKA
|
||||
0xFB 0x03CB # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
|
||||
0xFC 0x03CC # GREEK SMALL LETTER OMICRON WITH TONOS
|
||||
0xFD 0x03CD # GREEK SMALL LETTER UPSILON WITH TONOS
|
||||
0xFE 0x03CE # GREEK SMALL LETTER OMEGA WITH TONOS
|
259
backend/tools/data/8859-8.TXT
Normal file
259
backend/tools/data/8859-8.TXT
Normal file
@ -0,0 +1,259 @@
|
||||
# 8859-8.TXT
|
||||
# Date: 2015-12-02 21:50:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-8:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 2000-Jan-03 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-8:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-8 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-8 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 1.1 version updates to the published 8859-8:1999, correcting
|
||||
# the mapping of 0xAF and adding mappings for LRM and RLM.
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA2 0x00A2 # CENT SIGN
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x00A4 # CURRENCY SIGN
|
||||
0xA5 0x00A5 # YEN SIGN
|
||||
0xA6 0x00A6 # BROKEN BAR
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x00A8 # DIAERESIS
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x00D7 # MULTIPLICATION SIGN
|
||||
0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC # NOT SIGN
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x00AE # REGISTERED SIGN
|
||||
0xAF 0x00AF # MACRON
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x00B1 # PLUS-MINUS SIGN
|
||||
0xB2 0x00B2 # SUPERSCRIPT TWO
|
||||
0xB3 0x00B3 # SUPERSCRIPT THREE
|
||||
0xB4 0x00B4 # ACUTE ACCENT
|
||||
0xB5 0x00B5 # MICRO SIGN
|
||||
0xB6 0x00B6 # PILCROW SIGN
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x00B8 # CEDILLA
|
||||
0xB9 0x00B9 # SUPERSCRIPT ONE
|
||||
0xBA 0x00F7 # DIVISION SIGN
|
||||
0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x00BC # VULGAR FRACTION ONE QUARTER
|
||||
0xBD 0x00BD # VULGAR FRACTION ONE HALF
|
||||
0xBE 0x00BE # VULGAR FRACTION THREE QUARTERS
|
||||
0xDF 0x2017 # DOUBLE LOW LINE
|
||||
0xE0 0x05D0 # HEBREW LETTER ALEF
|
||||
0xE1 0x05D1 # HEBREW LETTER BET
|
||||
0xE2 0x05D2 # HEBREW LETTER GIMEL
|
||||
0xE3 0x05D3 # HEBREW LETTER DALET
|
||||
0xE4 0x05D4 # HEBREW LETTER HE
|
||||
0xE5 0x05D5 # HEBREW LETTER VAV
|
||||
0xE6 0x05D6 # HEBREW LETTER ZAYIN
|
||||
0xE7 0x05D7 # HEBREW LETTER HET
|
||||
0xE8 0x05D8 # HEBREW LETTER TET
|
||||
0xE9 0x05D9 # HEBREW LETTER YOD
|
||||
0xEA 0x05DA # HEBREW LETTER FINAL KAF
|
||||
0xEB 0x05DB # HEBREW LETTER KAF
|
||||
0xEC 0x05DC # HEBREW LETTER LAMED
|
||||
0xED 0x05DD # HEBREW LETTER FINAL MEM
|
||||
0xEE 0x05DE # HEBREW LETTER MEM
|
||||
0xEF 0x05DF # HEBREW LETTER FINAL NUN
|
||||
0xF0 0x05E0 # HEBREW LETTER NUN
|
||||
0xF1 0x05E1 # HEBREW LETTER SAMEKH
|
||||
0xF2 0x05E2 # HEBREW LETTER AYIN
|
||||
0xF3 0x05E3 # HEBREW LETTER FINAL PE
|
||||
0xF4 0x05E4 # HEBREW LETTER PE
|
||||
0xF5 0x05E5 # HEBREW LETTER FINAL TSADI
|
||||
0xF6 0x05E6 # HEBREW LETTER TSADI
|
||||
0xF7 0x05E7 # HEBREW LETTER QOF
|
||||
0xF8 0x05E8 # HEBREW LETTER RESH
|
||||
0xF9 0x05E9 # HEBREW LETTER SHIN
|
||||
0xFA 0x05EA # HEBREW LETTER TAV
|
||||
0xFD 0x200E # LEFT-TO-RIGHT MARK
|
||||
0xFE 0x200F # RIGHT-TO-LEFT MARK
|
||||
|
296
backend/tools/data/8859-9.TXT
Normal file
296
backend/tools/data/8859-9.TXT
Normal file
@ -0,0 +1,296 @@
|
||||
# 8859-9.TXT
|
||||
# Date: 2015-12-02 21:51:00 GMT [KW]
|
||||
# © 2015 Unicode®, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Name: ISO/IEC 8859-9:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27 (header updated: 2015 December 02)
|
||||
# Authors: Ken Whistler <ken@unicode.org>
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-9:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-9 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-9 order.
|
||||
#
|
||||
# ISO/IEC 8859-9 is also equivalent to ISO-IR-148.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version: updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 2.0 version: updates to copyright notice and terms of use; no
|
||||
# changes to character mappings
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# http://www.unicode.org/Public/MAPPINGS/
|
||||
#
|
||||
# Any comments or problems, contact us at:
|
||||
# http://www.unicode.org/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x00A1 # INVERTED EXCLAMATION MARK
|
||||
0xA2 0x00A2 # CENT SIGN
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x00A4 # CURRENCY SIGN
|
||||
0xA5 0x00A5 # YEN SIGN
|
||||
0xA6 0x00A6 # BROKEN BAR
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x00A8 # DIAERESIS
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x00AA # FEMININE ORDINAL INDICATOR
|
||||
0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC # NOT SIGN
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x00AE # REGISTERED SIGN
|
||||
0xAF 0x00AF # MACRON
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x00B1 # PLUS-MINUS SIGN
|
||||
0xB2 0x00B2 # SUPERSCRIPT TWO
|
||||
0xB3 0x00B3 # SUPERSCRIPT THREE
|
||||
0xB4 0x00B4 # ACUTE ACCENT
|
||||
0xB5 0x00B5 # MICRO SIGN
|
||||
0xB6 0x00B6 # PILCROW SIGN
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x00B8 # CEDILLA
|
||||
0xB9 0x00B9 # SUPERSCRIPT ONE
|
||||
0xBA 0x00BA # MASCULINE ORDINAL INDICATOR
|
||||
0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x00BC # VULGAR FRACTION ONE QUARTER
|
||||
0xBD 0x00BD # VULGAR FRACTION ONE HALF
|
||||
0xBE 0x00BE # VULGAR FRACTION THREE QUARTERS
|
||||
0xBF 0x00BF # INVERTED QUESTION MARK
|
||||
0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0xC6 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xD0 0x011E # LATIN CAPITAL LETTER G WITH BREVE
|
||||
0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 # MULTIPLICATION SIGN
|
||||
0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x0130 # LATIN CAPITAL LETTER I WITH DOT ABOVE
|
||||
0xDE 0x015E # LATIN CAPITAL LETTER S WITH CEDILLA
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0xE6 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0xF0 0x011F # LATIN SMALL LETTER G WITH BREVE
|
||||
0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE
|
||||
0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 # DIVISION SIGN
|
||||
0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE
|
||||
0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x0131 # LATIN SMALL LETTER DOTLESS I
|
||||
0xFE 0x015F # LATIN SMALL LETTER S WITH CEDILLA
|
||||
0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
|
||||
|
274
backend/tools/data/CP1250.TXT
Normal file
274
backend/tools/data/CP1250.TXT
Normal file
@ -0,0 +1,274 @@
|
||||
#
|
||||
# Name: cp1250 to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.01
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp1250 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp1250 order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0A 0x000A #LINE FEED
|
||||
0x0B 0x000B #VERTICAL TABULATION
|
||||
0x0C 0x000C #FORM FEED
|
||||
0x0D 0x000D #CARRIAGE RETURN
|
||||
0x0E 0x000E #SHIFT OUT
|
||||
0x0F 0x000F #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1A 0x001A #SUBSTITUTE
|
||||
0x1B 0x001B #ESCAPE
|
||||
0x1C 0x001C #FILE SEPARATOR
|
||||
0x1D 0x001D #GROUP SEPARATOR
|
||||
0x1E 0x001E #RECORD SEPARATOR
|
||||
0x1F 0x001F #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2A 0x002A #ASTERISK
|
||||
0x2B 0x002B #PLUS SIGN
|
||||
0x2C 0x002C #COMMA
|
||||
0x2D 0x002D #HYPHEN-MINUS
|
||||
0x2E 0x002E #FULL STOP
|
||||
0x2F 0x002F #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3A 0x003A #COLON
|
||||
0x3B 0x003B #SEMICOLON
|
||||
0x3C 0x003C #LESS-THAN SIGN
|
||||
0x3D 0x003D #EQUALS SIGN
|
||||
0x3E 0x003E #GREATER-THAN SIGN
|
||||
0x3F 0x003F #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A #LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B #LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C #LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D #LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E #LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A #LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B #LEFT SQUARE BRACKET
|
||||
0x5C 0x005C #REVERSE SOLIDUS
|
||||
0x5D 0x005D #RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E #CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6A 0x006A #LATIN SMALL LETTER J
|
||||
0x6B 0x006B #LATIN SMALL LETTER K
|
||||
0x6C 0x006C #LATIN SMALL LETTER L
|
||||
0x6D 0x006D #LATIN SMALL LETTER M
|
||||
0x6E 0x006E #LATIN SMALL LETTER N
|
||||
0x6F 0x006F #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7A 0x007A #LATIN SMALL LETTER Z
|
||||
0x7B 0x007B #LEFT CURLY BRACKET
|
||||
0x7C 0x007C #VERTICAL LINE
|
||||
0x7D 0x007D #RIGHT CURLY BRACKET
|
||||
0x7E 0x007E #TILDE
|
||||
0x7F 0x007F #DELETE
|
||||
0x80 0x20AC #EURO SIGN
|
||||
0x81 #UNDEFINED
|
||||
0x82 0x201A #SINGLE LOW-9 QUOTATION MARK
|
||||
0x83 #UNDEFINED
|
||||
0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK
|
||||
0x85 0x2026 #HORIZONTAL ELLIPSIS
|
||||
0x86 0x2020 #DAGGER
|
||||
0x87 0x2021 #DOUBLE DAGGER
|
||||
0x88 #UNDEFINED
|
||||
0x89 0x2030 #PER MILLE SIGN
|
||||
0x8A 0x0160 #LATIN CAPITAL LETTER S WITH CARON
|
||||
0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK
|
||||
0x8C 0x015A #LATIN CAPITAL LETTER S WITH ACUTE
|
||||
0x8D 0x0164 #LATIN CAPITAL LETTER T WITH CARON
|
||||
0x8E 0x017D #LATIN CAPITAL LETTER Z WITH CARON
|
||||
0x8F 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE
|
||||
0x90 #UNDEFINED
|
||||
0x91 0x2018 #LEFT SINGLE QUOTATION MARK
|
||||
0x92 0x2019 #RIGHT SINGLE QUOTATION MARK
|
||||
0x93 0x201C #LEFT DOUBLE QUOTATION MARK
|
||||
0x94 0x201D #RIGHT DOUBLE QUOTATION MARK
|
||||
0x95 0x2022 #BULLET
|
||||
0x96 0x2013 #EN DASH
|
||||
0x97 0x2014 #EM DASH
|
||||
0x98 #UNDEFINED
|
||||
0x99 0x2122 #TRADE MARK SIGN
|
||||
0x9A 0x0161 #LATIN SMALL LETTER S WITH CARON
|
||||
0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
|
||||
0x9C 0x015B #LATIN SMALL LETTER S WITH ACUTE
|
||||
0x9D 0x0165 #LATIN SMALL LETTER T WITH CARON
|
||||
0x9E 0x017E #LATIN SMALL LETTER Z WITH CARON
|
||||
0x9F 0x017A #LATIN SMALL LETTER Z WITH ACUTE
|
||||
0xA0 0x00A0 #NO-BREAK SPACE
|
||||
0xA1 0x02C7 #CARON
|
||||
0xA2 0x02D8 #BREVE
|
||||
0xA3 0x0141 #LATIN CAPITAL LETTER L WITH STROKE
|
||||
0xA4 0x00A4 #CURRENCY SIGN
|
||||
0xA5 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK
|
||||
0xA6 0x00A6 #BROKEN BAR
|
||||
0xA7 0x00A7 #SECTION SIGN
|
||||
0xA8 0x00A8 #DIAERESIS
|
||||
0xA9 0x00A9 #COPYRIGHT SIGN
|
||||
0xAA 0x015E #LATIN CAPITAL LETTER S WITH CEDILLA
|
||||
0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC #NOT SIGN
|
||||
0xAD 0x00AD #SOFT HYPHEN
|
||||
0xAE 0x00AE #REGISTERED SIGN
|
||||
0xAF 0x017B #LATIN CAPITAL LETTER Z WITH DOT ABOVE
|
||||
0xB0 0x00B0 #DEGREE SIGN
|
||||
0xB1 0x00B1 #PLUS-MINUS SIGN
|
||||
0xB2 0x02DB #OGONEK
|
||||
0xB3 0x0142 #LATIN SMALL LETTER L WITH STROKE
|
||||
0xB4 0x00B4 #ACUTE ACCENT
|
||||
0xB5 0x00B5 #MICRO SIGN
|
||||
0xB6 0x00B6 #PILCROW SIGN
|
||||
0xB7 0x00B7 #MIDDLE DOT
|
||||
0xB8 0x00B8 #CEDILLA
|
||||
0xB9 0x0105 #LATIN SMALL LETTER A WITH OGONEK
|
||||
0xBA 0x015F #LATIN SMALL LETTER S WITH CEDILLA
|
||||
0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x013D #LATIN CAPITAL LETTER L WITH CARON
|
||||
0xBD 0x02DD #DOUBLE ACUTE ACCENT
|
||||
0xBE 0x013E #LATIN SMALL LETTER L WITH CARON
|
||||
0xBF 0x017C #LATIN SMALL LETTER Z WITH DOT ABOVE
|
||||
0xC0 0x0154 #LATIN CAPITAL LETTER R WITH ACUTE
|
||||
0xC1 0x00C1 #LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x0102 #LATIN CAPITAL LETTER A WITH BREVE
|
||||
0xC4 0x00C4 #LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x0139 #LATIN CAPITAL LETTER L WITH ACUTE
|
||||
0xC6 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE
|
||||
0xC7 0x00C7 #LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x010C #LATIN CAPITAL LETTER C WITH CARON
|
||||
0xC9 0x00C9 #LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK
|
||||
0xCB 0x00CB #LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x011A #LATIN CAPITAL LETTER E WITH CARON
|
||||
0xCD 0x00CD #LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE #LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x010E #LATIN CAPITAL LETTER D WITH CARON
|
||||
0xD0 0x0110 #LATIN CAPITAL LETTER D WITH STROKE
|
||||
0xD1 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE
|
||||
0xD2 0x0147 #LATIN CAPITAL LETTER N WITH CARON
|
||||
0xD3 0x00D3 #LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x0150 #LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
|
||||
0xD6 0x00D6 #LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 #MULTIPLICATION SIGN
|
||||
0xD8 0x0158 #LATIN CAPITAL LETTER R WITH CARON
|
||||
0xD9 0x016E #LATIN CAPITAL LETTER U WITH RING ABOVE
|
||||
0xDA 0x00DA #LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x0170 #LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
|
||||
0xDC 0x00DC #LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x00DD #LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xDE 0x0162 #LATIN CAPITAL LETTER T WITH CEDILLA
|
||||
0xDF 0x00DF #LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x0155 #LATIN SMALL LETTER R WITH ACUTE
|
||||
0xE1 0x00E1 #LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 #LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x0103 #LATIN SMALL LETTER A WITH BREVE
|
||||
0xE4 0x00E4 #LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x013A #LATIN SMALL LETTER L WITH ACUTE
|
||||
0xE6 0x0107 #LATIN SMALL LETTER C WITH ACUTE
|
||||
0xE7 0x00E7 #LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x010D #LATIN SMALL LETTER C WITH CARON
|
||||
0xE9 0x00E9 #LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x0119 #LATIN SMALL LETTER E WITH OGONEK
|
||||
0xEB 0x00EB #LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x011B #LATIN SMALL LETTER E WITH CARON
|
||||
0xED 0x00ED #LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE #LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x010F #LATIN SMALL LETTER D WITH CARON
|
||||
0xF0 0x0111 #LATIN SMALL LETTER D WITH STROKE
|
||||
0xF1 0x0144 #LATIN SMALL LETTER N WITH ACUTE
|
||||
0xF2 0x0148 #LATIN SMALL LETTER N WITH CARON
|
||||
0xF3 0x00F3 #LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 #LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x0151 #LATIN SMALL LETTER O WITH DOUBLE ACUTE
|
||||
0xF6 0x00F6 #LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 #DIVISION SIGN
|
||||
0xF8 0x0159 #LATIN SMALL LETTER R WITH CARON
|
||||
0xF9 0x016F #LATIN SMALL LETTER U WITH RING ABOVE
|
||||
0xFA 0x00FA #LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x0171 #LATIN SMALL LETTER U WITH DOUBLE ACUTE
|
||||
0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD #LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x0163 #LATIN SMALL LETTER T WITH CEDILLA
|
||||
0xFF 0x02D9 #DOT ABOVE
|
274
backend/tools/data/CP1251.TXT
Normal file
274
backend/tools/data/CP1251.TXT
Normal file
@ -0,0 +1,274 @@
|
||||
#
|
||||
# Name: cp1251 to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.01
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp1251 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp1251 order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0A 0x000A #LINE FEED
|
||||
0x0B 0x000B #VERTICAL TABULATION
|
||||
0x0C 0x000C #FORM FEED
|
||||
0x0D 0x000D #CARRIAGE RETURN
|
||||
0x0E 0x000E #SHIFT OUT
|
||||
0x0F 0x000F #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1A 0x001A #SUBSTITUTE
|
||||
0x1B 0x001B #ESCAPE
|
||||
0x1C 0x001C #FILE SEPARATOR
|
||||
0x1D 0x001D #GROUP SEPARATOR
|
||||
0x1E 0x001E #RECORD SEPARATOR
|
||||
0x1F 0x001F #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2A 0x002A #ASTERISK
|
||||
0x2B 0x002B #PLUS SIGN
|
||||
0x2C 0x002C #COMMA
|
||||
0x2D 0x002D #HYPHEN-MINUS
|
||||
0x2E 0x002E #FULL STOP
|
||||
0x2F 0x002F #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3A 0x003A #COLON
|
||||
0x3B 0x003B #SEMICOLON
|
||||
0x3C 0x003C #LESS-THAN SIGN
|
||||
0x3D 0x003D #EQUALS SIGN
|
||||
0x3E 0x003E #GREATER-THAN SIGN
|
||||
0x3F 0x003F #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A #LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B #LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C #LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D #LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E #LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A #LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B #LEFT SQUARE BRACKET
|
||||
0x5C 0x005C #REVERSE SOLIDUS
|
||||
0x5D 0x005D #RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E #CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6A 0x006A #LATIN SMALL LETTER J
|
||||
0x6B 0x006B #LATIN SMALL LETTER K
|
||||
0x6C 0x006C #LATIN SMALL LETTER L
|
||||
0x6D 0x006D #LATIN SMALL LETTER M
|
||||
0x6E 0x006E #LATIN SMALL LETTER N
|
||||
0x6F 0x006F #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7A 0x007A #LATIN SMALL LETTER Z
|
||||
0x7B 0x007B #LEFT CURLY BRACKET
|
||||
0x7C 0x007C #VERTICAL LINE
|
||||
0x7D 0x007D #RIGHT CURLY BRACKET
|
||||
0x7E 0x007E #TILDE
|
||||
0x7F 0x007F #DELETE
|
||||
0x80 0x0402 #CYRILLIC CAPITAL LETTER DJE
|
||||
0x81 0x0403 #CYRILLIC CAPITAL LETTER GJE
|
||||
0x82 0x201A #SINGLE LOW-9 QUOTATION MARK
|
||||
0x83 0x0453 #CYRILLIC SMALL LETTER GJE
|
||||
0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK
|
||||
0x85 0x2026 #HORIZONTAL ELLIPSIS
|
||||
0x86 0x2020 #DAGGER
|
||||
0x87 0x2021 #DOUBLE DAGGER
|
||||
0x88 0x20AC #EURO SIGN
|
||||
0x89 0x2030 #PER MILLE SIGN
|
||||
0x8A 0x0409 #CYRILLIC CAPITAL LETTER LJE
|
||||
0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK
|
||||
0x8C 0x040A #CYRILLIC CAPITAL LETTER NJE
|
||||
0x8D 0x040C #CYRILLIC CAPITAL LETTER KJE
|
||||
0x8E 0x040B #CYRILLIC CAPITAL LETTER TSHE
|
||||
0x8F 0x040F #CYRILLIC CAPITAL LETTER DZHE
|
||||
0x90 0x0452 #CYRILLIC SMALL LETTER DJE
|
||||
0x91 0x2018 #LEFT SINGLE QUOTATION MARK
|
||||
0x92 0x2019 #RIGHT SINGLE QUOTATION MARK
|
||||
0x93 0x201C #LEFT DOUBLE QUOTATION MARK
|
||||
0x94 0x201D #RIGHT DOUBLE QUOTATION MARK
|
||||
0x95 0x2022 #BULLET
|
||||
0x96 0x2013 #EN DASH
|
||||
0x97 0x2014 #EM DASH
|
||||
0x98 #UNDEFINED
|
||||
0x99 0x2122 #TRADE MARK SIGN
|
||||
0x9A 0x0459 #CYRILLIC SMALL LETTER LJE
|
||||
0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
|
||||
0x9C 0x045A #CYRILLIC SMALL LETTER NJE
|
||||
0x9D 0x045C #CYRILLIC SMALL LETTER KJE
|
||||
0x9E 0x045B #CYRILLIC SMALL LETTER TSHE
|
||||
0x9F 0x045F #CYRILLIC SMALL LETTER DZHE
|
||||
0xA0 0x00A0 #NO-BREAK SPACE
|
||||
0xA1 0x040E #CYRILLIC CAPITAL LETTER SHORT U
|
||||
0xA2 0x045E #CYRILLIC SMALL LETTER SHORT U
|
||||
0xA3 0x0408 #CYRILLIC CAPITAL LETTER JE
|
||||
0xA4 0x00A4 #CURRENCY SIGN
|
||||
0xA5 0x0490 #CYRILLIC CAPITAL LETTER GHE WITH UPTURN
|
||||
0xA6 0x00A6 #BROKEN BAR
|
||||
0xA7 0x00A7 #SECTION SIGN
|
||||
0xA8 0x0401 #CYRILLIC CAPITAL LETTER IO
|
||||
0xA9 0x00A9 #COPYRIGHT SIGN
|
||||
0xAA 0x0404 #CYRILLIC CAPITAL LETTER UKRAINIAN IE
|
||||
0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC #NOT SIGN
|
||||
0xAD 0x00AD #SOFT HYPHEN
|
||||
0xAE 0x00AE #REGISTERED SIGN
|
||||
0xAF 0x0407 #CYRILLIC CAPITAL LETTER YI
|
||||
0xB0 0x00B0 #DEGREE SIGN
|
||||
0xB1 0x00B1 #PLUS-MINUS SIGN
|
||||
0xB2 0x0406 #CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
|
||||
0xB3 0x0456 #CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
|
||||
0xB4 0x0491 #CYRILLIC SMALL LETTER GHE WITH UPTURN
|
||||
0xB5 0x00B5 #MICRO SIGN
|
||||
0xB6 0x00B6 #PILCROW SIGN
|
||||
0xB7 0x00B7 #MIDDLE DOT
|
||||
0xB8 0x0451 #CYRILLIC SMALL LETTER IO
|
||||
0xB9 0x2116 #NUMERO SIGN
|
||||
0xBA 0x0454 #CYRILLIC SMALL LETTER UKRAINIAN IE
|
||||
0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x0458 #CYRILLIC SMALL LETTER JE
|
||||
0xBD 0x0405 #CYRILLIC CAPITAL LETTER DZE
|
||||
0xBE 0x0455 #CYRILLIC SMALL LETTER DZE
|
||||
0xBF 0x0457 #CYRILLIC SMALL LETTER YI
|
||||
0xC0 0x0410 #CYRILLIC CAPITAL LETTER A
|
||||
0xC1 0x0411 #CYRILLIC CAPITAL LETTER BE
|
||||
0xC2 0x0412 #CYRILLIC CAPITAL LETTER VE
|
||||
0xC3 0x0413 #CYRILLIC CAPITAL LETTER GHE
|
||||
0xC4 0x0414 #CYRILLIC CAPITAL LETTER DE
|
||||
0xC5 0x0415 #CYRILLIC CAPITAL LETTER IE
|
||||
0xC6 0x0416 #CYRILLIC CAPITAL LETTER ZHE
|
||||
0xC7 0x0417 #CYRILLIC CAPITAL LETTER ZE
|
||||
0xC8 0x0418 #CYRILLIC CAPITAL LETTER I
|
||||
0xC9 0x0419 #CYRILLIC CAPITAL LETTER SHORT I
|
||||
0xCA 0x041A #CYRILLIC CAPITAL LETTER KA
|
||||
0xCB 0x041B #CYRILLIC CAPITAL LETTER EL
|
||||
0xCC 0x041C #CYRILLIC CAPITAL LETTER EM
|
||||
0xCD 0x041D #CYRILLIC CAPITAL LETTER EN
|
||||
0xCE 0x041E #CYRILLIC CAPITAL LETTER O
|
||||
0xCF 0x041F #CYRILLIC CAPITAL LETTER PE
|
||||
0xD0 0x0420 #CYRILLIC CAPITAL LETTER ER
|
||||
0xD1 0x0421 #CYRILLIC CAPITAL LETTER ES
|
||||
0xD2 0x0422 #CYRILLIC CAPITAL LETTER TE
|
||||
0xD3 0x0423 #CYRILLIC CAPITAL LETTER U
|
||||
0xD4 0x0424 #CYRILLIC CAPITAL LETTER EF
|
||||
0xD5 0x0425 #CYRILLIC CAPITAL LETTER HA
|
||||
0xD6 0x0426 #CYRILLIC CAPITAL LETTER TSE
|
||||
0xD7 0x0427 #CYRILLIC CAPITAL LETTER CHE
|
||||
0xD8 0x0428 #CYRILLIC CAPITAL LETTER SHA
|
||||
0xD9 0x0429 #CYRILLIC CAPITAL LETTER SHCHA
|
||||
0xDA 0x042A #CYRILLIC CAPITAL LETTER HARD SIGN
|
||||
0xDB 0x042B #CYRILLIC CAPITAL LETTER YERU
|
||||
0xDC 0x042C #CYRILLIC CAPITAL LETTER SOFT SIGN
|
||||
0xDD 0x042D #CYRILLIC CAPITAL LETTER E
|
||||
0xDE 0x042E #CYRILLIC CAPITAL LETTER YU
|
||||
0xDF 0x042F #CYRILLIC CAPITAL LETTER YA
|
||||
0xE0 0x0430 #CYRILLIC SMALL LETTER A
|
||||
0xE1 0x0431 #CYRILLIC SMALL LETTER BE
|
||||
0xE2 0x0432 #CYRILLIC SMALL LETTER VE
|
||||
0xE3 0x0433 #CYRILLIC SMALL LETTER GHE
|
||||
0xE4 0x0434 #CYRILLIC SMALL LETTER DE
|
||||
0xE5 0x0435 #CYRILLIC SMALL LETTER IE
|
||||
0xE6 0x0436 #CYRILLIC SMALL LETTER ZHE
|
||||
0xE7 0x0437 #CYRILLIC SMALL LETTER ZE
|
||||
0xE8 0x0438 #CYRILLIC SMALL LETTER I
|
||||
0xE9 0x0439 #CYRILLIC SMALL LETTER SHORT I
|
||||
0xEA 0x043A #CYRILLIC SMALL LETTER KA
|
||||
0xEB 0x043B #CYRILLIC SMALL LETTER EL
|
||||
0xEC 0x043C #CYRILLIC SMALL LETTER EM
|
||||
0xED 0x043D #CYRILLIC SMALL LETTER EN
|
||||
0xEE 0x043E #CYRILLIC SMALL LETTER O
|
||||
0xEF 0x043F #CYRILLIC SMALL LETTER PE
|
||||
0xF0 0x0440 #CYRILLIC SMALL LETTER ER
|
||||
0xF1 0x0441 #CYRILLIC SMALL LETTER ES
|
||||
0xF2 0x0442 #CYRILLIC SMALL LETTER TE
|
||||
0xF3 0x0443 #CYRILLIC SMALL LETTER U
|
||||
0xF4 0x0444 #CYRILLIC SMALL LETTER EF
|
||||
0xF5 0x0445 #CYRILLIC SMALL LETTER HA
|
||||
0xF6 0x0446 #CYRILLIC SMALL LETTER TSE
|
||||
0xF7 0x0447 #CYRILLIC SMALL LETTER CHE
|
||||
0xF8 0x0448 #CYRILLIC SMALL LETTER SHA
|
||||
0xF9 0x0449 #CYRILLIC SMALL LETTER SHCHA
|
||||
0xFA 0x044A #CYRILLIC SMALL LETTER HARD SIGN
|
||||
0xFB 0x044B #CYRILLIC SMALL LETTER YERU
|
||||
0xFC 0x044C #CYRILLIC SMALL LETTER SOFT SIGN
|
||||
0xFD 0x044D #CYRILLIC SMALL LETTER E
|
||||
0xFE 0x044E #CYRILLIC SMALL LETTER YU
|
||||
0xFF 0x044F #CYRILLIC SMALL LETTER YA
|
274
backend/tools/data/CP1252.TXT
Normal file
274
backend/tools/data/CP1252.TXT
Normal file
@ -0,0 +1,274 @@
|
||||
#
|
||||
# Name: cp1252 to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.01
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp1252 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp1252 order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0A 0x000A #LINE FEED
|
||||
0x0B 0x000B #VERTICAL TABULATION
|
||||
0x0C 0x000C #FORM FEED
|
||||
0x0D 0x000D #CARRIAGE RETURN
|
||||
0x0E 0x000E #SHIFT OUT
|
||||
0x0F 0x000F #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1A 0x001A #SUBSTITUTE
|
||||
0x1B 0x001B #ESCAPE
|
||||
0x1C 0x001C #FILE SEPARATOR
|
||||
0x1D 0x001D #GROUP SEPARATOR
|
||||
0x1E 0x001E #RECORD SEPARATOR
|
||||
0x1F 0x001F #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2A 0x002A #ASTERISK
|
||||
0x2B 0x002B #PLUS SIGN
|
||||
0x2C 0x002C #COMMA
|
||||
0x2D 0x002D #HYPHEN-MINUS
|
||||
0x2E 0x002E #FULL STOP
|
||||
0x2F 0x002F #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3A 0x003A #COLON
|
||||
0x3B 0x003B #SEMICOLON
|
||||
0x3C 0x003C #LESS-THAN SIGN
|
||||
0x3D 0x003D #EQUALS SIGN
|
||||
0x3E 0x003E #GREATER-THAN SIGN
|
||||
0x3F 0x003F #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A #LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B #LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C #LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D #LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E #LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A #LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B #LEFT SQUARE BRACKET
|
||||
0x5C 0x005C #REVERSE SOLIDUS
|
||||
0x5D 0x005D #RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E #CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6A 0x006A #LATIN SMALL LETTER J
|
||||
0x6B 0x006B #LATIN SMALL LETTER K
|
||||
0x6C 0x006C #LATIN SMALL LETTER L
|
||||
0x6D 0x006D #LATIN SMALL LETTER M
|
||||
0x6E 0x006E #LATIN SMALL LETTER N
|
||||
0x6F 0x006F #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7A 0x007A #LATIN SMALL LETTER Z
|
||||
0x7B 0x007B #LEFT CURLY BRACKET
|
||||
0x7C 0x007C #VERTICAL LINE
|
||||
0x7D 0x007D #RIGHT CURLY BRACKET
|
||||
0x7E 0x007E #TILDE
|
||||
0x7F 0x007F #DELETE
|
||||
0x80 0x20AC #EURO SIGN
|
||||
0x81 #UNDEFINED
|
||||
0x82 0x201A #SINGLE LOW-9 QUOTATION MARK
|
||||
0x83 0x0192 #LATIN SMALL LETTER F WITH HOOK
|
||||
0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK
|
||||
0x85 0x2026 #HORIZONTAL ELLIPSIS
|
||||
0x86 0x2020 #DAGGER
|
||||
0x87 0x2021 #DOUBLE DAGGER
|
||||
0x88 0x02C6 #MODIFIER LETTER CIRCUMFLEX ACCENT
|
||||
0x89 0x2030 #PER MILLE SIGN
|
||||
0x8A 0x0160 #LATIN CAPITAL LETTER S WITH CARON
|
||||
0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK
|
||||
0x8C 0x0152 #LATIN CAPITAL LIGATURE OE
|
||||
0x8D #UNDEFINED
|
||||
0x8E 0x017D #LATIN CAPITAL LETTER Z WITH CARON
|
||||
0x8F #UNDEFINED
|
||||
0x90 #UNDEFINED
|
||||
0x91 0x2018 #LEFT SINGLE QUOTATION MARK
|
||||
0x92 0x2019 #RIGHT SINGLE QUOTATION MARK
|
||||
0x93 0x201C #LEFT DOUBLE QUOTATION MARK
|
||||
0x94 0x201D #RIGHT DOUBLE QUOTATION MARK
|
||||
0x95 0x2022 #BULLET
|
||||
0x96 0x2013 #EN DASH
|
||||
0x97 0x2014 #EM DASH
|
||||
0x98 0x02DC #SMALL TILDE
|
||||
0x99 0x2122 #TRADE MARK SIGN
|
||||
0x9A 0x0161 #LATIN SMALL LETTER S WITH CARON
|
||||
0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
|
||||
0x9C 0x0153 #LATIN SMALL LIGATURE OE
|
||||
0x9D #UNDEFINED
|
||||
0x9E 0x017E #LATIN SMALL LETTER Z WITH CARON
|
||||
0x9F 0x0178 #LATIN CAPITAL LETTER Y WITH DIAERESIS
|
||||
0xA0 0x00A0 #NO-BREAK SPACE
|
||||
0xA1 0x00A1 #INVERTED EXCLAMATION MARK
|
||||
0xA2 0x00A2 #CENT SIGN
|
||||
0xA3 0x00A3 #POUND SIGN
|
||||
0xA4 0x00A4 #CURRENCY SIGN
|
||||
0xA5 0x00A5 #YEN SIGN
|
||||
0xA6 0x00A6 #BROKEN BAR
|
||||
0xA7 0x00A7 #SECTION SIGN
|
||||
0xA8 0x00A8 #DIAERESIS
|
||||
0xA9 0x00A9 #COPYRIGHT SIGN
|
||||
0xAA 0x00AA #FEMININE ORDINAL INDICATOR
|
||||
0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC #NOT SIGN
|
||||
0xAD 0x00AD #SOFT HYPHEN
|
||||
0xAE 0x00AE #REGISTERED SIGN
|
||||
0xAF 0x00AF #MACRON
|
||||
0xB0 0x00B0 #DEGREE SIGN
|
||||
0xB1 0x00B1 #PLUS-MINUS SIGN
|
||||
0xB2 0x00B2 #SUPERSCRIPT TWO
|
||||
0xB3 0x00B3 #SUPERSCRIPT THREE
|
||||
0xB4 0x00B4 #ACUTE ACCENT
|
||||
0xB5 0x00B5 #MICRO SIGN
|
||||
0xB6 0x00B6 #PILCROW SIGN
|
||||
0xB7 0x00B7 #MIDDLE DOT
|
||||
0xB8 0x00B8 #CEDILLA
|
||||
0xB9 0x00B9 #SUPERSCRIPT ONE
|
||||
0xBA 0x00BA #MASCULINE ORDINAL INDICATOR
|
||||
0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x00BC #VULGAR FRACTION ONE QUARTER
|
||||
0xBD 0x00BD #VULGAR FRACTION ONE HALF
|
||||
0xBE 0x00BE #VULGAR FRACTION THREE QUARTERS
|
||||
0xBF 0x00BF #INVERTED QUESTION MARK
|
||||
0xC0 0x00C0 #LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xC1 0x00C1 #LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x00C3 #LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xC4 0x00C4 #LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x00C5 #LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0xC6 0x00C6 #LATIN CAPITAL LETTER AE
|
||||
0xC7 0x00C7 #LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x00C8 #LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xC9 0x00C9 #LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x00CA #LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xCB 0x00CB #LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x00CC #LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xCD 0x00CD #LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE #LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x00CF #LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xD0 0x00D0 #LATIN CAPITAL LETTER ETH
|
||||
0xD1 0x00D1 #LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xD2 0x00D2 #LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xD3 0x00D3 #LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x00D5 #LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xD6 0x00D6 #LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 #MULTIPLICATION SIGN
|
||||
0xD8 0x00D8 #LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xD9 0x00D9 #LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xDA 0x00DA #LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB #LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC #LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x00DD #LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xDE 0x00DE #LATIN CAPITAL LETTER THORN
|
||||
0xDF 0x00DF #LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x00E0 #LATIN SMALL LETTER A WITH GRAVE
|
||||
0xE1 0x00E1 #LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 #LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x00E3 #LATIN SMALL LETTER A WITH TILDE
|
||||
0xE4 0x00E4 #LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x00E5 #LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0xE6 0x00E6 #LATIN SMALL LETTER AE
|
||||
0xE7 0x00E7 #LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x00E8 #LATIN SMALL LETTER E WITH GRAVE
|
||||
0xE9 0x00E9 #LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x00EA #LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0xEB 0x00EB #LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x00EC #LATIN SMALL LETTER I WITH GRAVE
|
||||
0xED 0x00ED #LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE #LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x00EF #LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0xF0 0x00F0 #LATIN SMALL LETTER ETH
|
||||
0xF1 0x00F1 #LATIN SMALL LETTER N WITH TILDE
|
||||
0xF2 0x00F2 #LATIN SMALL LETTER O WITH GRAVE
|
||||
0xF3 0x00F3 #LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 #LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x00F5 #LATIN SMALL LETTER O WITH TILDE
|
||||
0xF6 0x00F6 #LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 #DIVISION SIGN
|
||||
0xF8 0x00F8 #LATIN SMALL LETTER O WITH STROKE
|
||||
0xF9 0x00F9 #LATIN SMALL LETTER U WITH GRAVE
|
||||
0xFA 0x00FA #LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB #LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD #LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x00FE #LATIN SMALL LETTER THORN
|
||||
0xFF 0x00FF #LATIN SMALL LETTER Y WITH DIAERESIS
|
274
backend/tools/data/CP1256.TXT
Normal file
274
backend/tools/data/CP1256.TXT
Normal file
@ -0,0 +1,274 @@
|
||||
#
|
||||
# Name: cp1256 to Unicode table
|
||||
# Unicode version: 2.1
|
||||
# Table version: 2.01
|
||||
# Table format: Format A
|
||||
# Date: 01/5/99
|
||||
#
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp1256 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp1256 order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0A 0x000A #LINE FEED
|
||||
0x0B 0x000B #VERTICAL TABULATION
|
||||
0x0C 0x000C #FORM FEED
|
||||
0x0D 0x000D #CARRIAGE RETURN
|
||||
0x0E 0x000E #SHIFT OUT
|
||||
0x0F 0x000F #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1A 0x001A #SUBSTITUTE
|
||||
0x1B 0x001B #ESCAPE
|
||||
0x1C 0x001C #FILE SEPARATOR
|
||||
0x1D 0x001D #GROUP SEPARATOR
|
||||
0x1E 0x001E #RECORD SEPARATOR
|
||||
0x1F 0x001F #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2A 0x002A #ASTERISK
|
||||
0x2B 0x002B #PLUS SIGN
|
||||
0x2C 0x002C #COMMA
|
||||
0x2D 0x002D #HYPHEN-MINUS
|
||||
0x2E 0x002E #FULL STOP
|
||||
0x2F 0x002F #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3A 0x003A #COLON
|
||||
0x3B 0x003B #SEMICOLON
|
||||
0x3C 0x003C #LESS-THAN SIGN
|
||||
0x3D 0x003D #EQUALS SIGN
|
||||
0x3E 0x003E #GREATER-THAN SIGN
|
||||
0x3F 0x003F #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A #LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B #LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C #LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D #LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E #LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A #LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B #LEFT SQUARE BRACKET
|
||||
0x5C 0x005C #REVERSE SOLIDUS
|
||||
0x5D 0x005D #RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E #CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6A 0x006A #LATIN SMALL LETTER J
|
||||
0x6B 0x006B #LATIN SMALL LETTER K
|
||||
0x6C 0x006C #LATIN SMALL LETTER L
|
||||
0x6D 0x006D #LATIN SMALL LETTER M
|
||||
0x6E 0x006E #LATIN SMALL LETTER N
|
||||
0x6F 0x006F #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7A 0x007A #LATIN SMALL LETTER Z
|
||||
0x7B 0x007B #LEFT CURLY BRACKET
|
||||
0x7C 0x007C #VERTICAL LINE
|
||||
0x7D 0x007D #RIGHT CURLY BRACKET
|
||||
0x7E 0x007E #TILDE
|
||||
0x7F 0x007F #DELETE
|
||||
0x80 0x20AC #EURO SIGN
|
||||
0x81 0x067E #ARABIC LETTER PEH
|
||||
0x82 0x201A #SINGLE LOW-9 QUOTATION MARK
|
||||
0x83 0x0192 #LATIN SMALL LETTER F WITH HOOK
|
||||
0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK
|
||||
0x85 0x2026 #HORIZONTAL ELLIPSIS
|
||||
0x86 0x2020 #DAGGER
|
||||
0x87 0x2021 #DOUBLE DAGGER
|
||||
0x88 0x02C6 #MODIFIER LETTER CIRCUMFLEX ACCENT
|
||||
0x89 0x2030 #PER MILLE SIGN
|
||||
0x8A 0x0679 #ARABIC LETTER TTEH
|
||||
0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK
|
||||
0x8C 0x0152 #LATIN CAPITAL LIGATURE OE
|
||||
0x8D 0x0686 #ARABIC LETTER TCHEH
|
||||
0x8E 0x0698 #ARABIC LETTER JEH
|
||||
0x8F 0x0688 #ARABIC LETTER DDAL
|
||||
0x90 0x06AF #ARABIC LETTER GAF
|
||||
0x91 0x2018 #LEFT SINGLE QUOTATION MARK
|
||||
0x92 0x2019 #RIGHT SINGLE QUOTATION MARK
|
||||
0x93 0x201C #LEFT DOUBLE QUOTATION MARK
|
||||
0x94 0x201D #RIGHT DOUBLE QUOTATION MARK
|
||||
0x95 0x2022 #BULLET
|
||||
0x96 0x2013 #EN DASH
|
||||
0x97 0x2014 #EM DASH
|
||||
0x98 0x06A9 #ARABIC LETTER KEHEH
|
||||
0x99 0x2122 #TRADE MARK SIGN
|
||||
0x9A 0x0691 #ARABIC LETTER RREH
|
||||
0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
|
||||
0x9C 0x0153 #LATIN SMALL LIGATURE OE
|
||||
0x9D 0x200C #ZERO WIDTH NON-JOINER
|
||||
0x9E 0x200D #ZERO WIDTH JOINER
|
||||
0x9F 0x06BA #ARABIC LETTER NOON GHUNNA
|
||||
0xA0 0x00A0 #NO-BREAK SPACE
|
||||
0xA1 0x060C #ARABIC COMMA
|
||||
0xA2 0x00A2 #CENT SIGN
|
||||
0xA3 0x00A3 #POUND SIGN
|
||||
0xA4 0x00A4 #CURRENCY SIGN
|
||||
0xA5 0x00A5 #YEN SIGN
|
||||
0xA6 0x00A6 #BROKEN BAR
|
||||
0xA7 0x00A7 #SECTION SIGN
|
||||
0xA8 0x00A8 #DIAERESIS
|
||||
0xA9 0x00A9 #COPYRIGHT SIGN
|
||||
0xAA 0x06BE #ARABIC LETTER HEH DOACHASHMEE
|
||||
0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC #NOT SIGN
|
||||
0xAD 0x00AD #SOFT HYPHEN
|
||||
0xAE 0x00AE #REGISTERED SIGN
|
||||
0xAF 0x00AF #MACRON
|
||||
0xB0 0x00B0 #DEGREE SIGN
|
||||
0xB1 0x00B1 #PLUS-MINUS SIGN
|
||||
0xB2 0x00B2 #SUPERSCRIPT TWO
|
||||
0xB3 0x00B3 #SUPERSCRIPT THREE
|
||||
0xB4 0x00B4 #ACUTE ACCENT
|
||||
0xB5 0x00B5 #MICRO SIGN
|
||||
0xB6 0x00B6 #PILCROW SIGN
|
||||
0xB7 0x00B7 #MIDDLE DOT
|
||||
0xB8 0x00B8 #CEDILLA
|
||||
0xB9 0x00B9 #SUPERSCRIPT ONE
|
||||
0xBA 0x061B #ARABIC SEMICOLON
|
||||
0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x00BC #VULGAR FRACTION ONE QUARTER
|
||||
0xBD 0x00BD #VULGAR FRACTION ONE HALF
|
||||
0xBE 0x00BE #VULGAR FRACTION THREE QUARTERS
|
||||
0xBF 0x061F #ARABIC QUESTION MARK
|
||||
0xC0 0x06C1 #ARABIC LETTER HEH GOAL
|
||||
0xC1 0x0621 #ARABIC LETTER HAMZA
|
||||
0xC2 0x0622 #ARABIC LETTER ALEF WITH MADDA ABOVE
|
||||
0xC3 0x0623 #ARABIC LETTER ALEF WITH HAMZA ABOVE
|
||||
0xC4 0x0624 #ARABIC LETTER WAW WITH HAMZA ABOVE
|
||||
0xC5 0x0625 #ARABIC LETTER ALEF WITH HAMZA BELOW
|
||||
0xC6 0x0626 #ARABIC LETTER YEH WITH HAMZA ABOVE
|
||||
0xC7 0x0627 #ARABIC LETTER ALEF
|
||||
0xC8 0x0628 #ARABIC LETTER BEH
|
||||
0xC9 0x0629 #ARABIC LETTER TEH MARBUTA
|
||||
0xCA 0x062A #ARABIC LETTER TEH
|
||||
0xCB 0x062B #ARABIC LETTER THEH
|
||||
0xCC 0x062C #ARABIC LETTER JEEM
|
||||
0xCD 0x062D #ARABIC LETTER HAH
|
||||
0xCE 0x062E #ARABIC LETTER KHAH
|
||||
0xCF 0x062F #ARABIC LETTER DAL
|
||||
0xD0 0x0630 #ARABIC LETTER THAL
|
||||
0xD1 0x0631 #ARABIC LETTER REH
|
||||
0xD2 0x0632 #ARABIC LETTER ZAIN
|
||||
0xD3 0x0633 #ARABIC LETTER SEEN
|
||||
0xD4 0x0634 #ARABIC LETTER SHEEN
|
||||
0xD5 0x0635 #ARABIC LETTER SAD
|
||||
0xD6 0x0636 #ARABIC LETTER DAD
|
||||
0xD7 0x00D7 #MULTIPLICATION SIGN
|
||||
0xD8 0x0637 #ARABIC LETTER TAH
|
||||
0xD9 0x0638 #ARABIC LETTER ZAH
|
||||
0xDA 0x0639 #ARABIC LETTER AIN
|
||||
0xDB 0x063A #ARABIC LETTER GHAIN
|
||||
0xDC 0x0640 #ARABIC TATWEEL
|
||||
0xDD 0x0641 #ARABIC LETTER FEH
|
||||
0xDE 0x0642 #ARABIC LETTER QAF
|
||||
0xDF 0x0643 #ARABIC LETTER KAF
|
||||
0xE0 0x00E0 #LATIN SMALL LETTER A WITH GRAVE
|
||||
0xE1 0x0644 #ARABIC LETTER LAM
|
||||
0xE2 0x00E2 #LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x0645 #ARABIC LETTER MEEM
|
||||
0xE4 0x0646 #ARABIC LETTER NOON
|
||||
0xE5 0x0647 #ARABIC LETTER HEH
|
||||
0xE6 0x0648 #ARABIC LETTER WAW
|
||||
0xE7 0x00E7 #LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x00E8 #LATIN SMALL LETTER E WITH GRAVE
|
||||
0xE9 0x00E9 #LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x00EA #LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0xEB 0x00EB #LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x0649 #ARABIC LETTER ALEF MAKSURA
|
||||
0xED 0x064A #ARABIC LETTER YEH
|
||||
0xEE 0x00EE #LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x00EF #LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0xF0 0x064B #ARABIC FATHATAN
|
||||
0xF1 0x064C #ARABIC DAMMATAN
|
||||
0xF2 0x064D #ARABIC KASRATAN
|
||||
0xF3 0x064E #ARABIC FATHA
|
||||
0xF4 0x00F4 #LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x064F #ARABIC DAMMA
|
||||
0xF6 0x0650 #ARABIC KASRA
|
||||
0xF7 0x00F7 #DIVISION SIGN
|
||||
0xF8 0x0651 #ARABIC SHADDA
|
||||
0xF9 0x00F9 #LATIN SMALL LETTER U WITH GRAVE
|
||||
0xFA 0x0652 #ARABIC SUKUN
|
||||
0xFB 0x00FB #LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x200E #LEFT-TO-RIGHT MARK
|
||||
0xFE 0x200F #RIGHT-TO-LEFT MARK
|
||||
0xFF 0x06D2 #ARABIC LETTER YEH BARREE
|
21919
backend/tools/data/CP936.TXT
Normal file
21919
backend/tools/data/CP936.TXT
Normal file
File diff suppressed because it is too large
Load Diff
4
backend/tools/data/GB18030.TXT.README
Normal file
4
backend/tools/data/GB18030.TXT.README
Normal file
@ -0,0 +1,4 @@
|
||||
# GB18030.TXT not included as 21MB in size. It can be extracted from
|
||||
# https://haible.de/bruno/charsets/conversion-tables/GB18030.tar.bz2
|
||||
# (see https://haible.de/bruno/charsets/conversion-tables/GB18030.html)
|
||||
# The version used is jdk-1.4.2/GB18030.TXT
|
704
backend/tools/gen_eci_mb_h.php
Normal file
704
backend/tools/gen_eci_mb_h.php
Normal file
@ -0,0 +1,704 @@
|
||||
<?php
|
||||
/* Generate ECI multibyte tables from unicode.org mapping files */
|
||||
/*
|
||||
libzint - the open source barcode library
|
||||
Copyright (C) 2022 Robin Stuart <rstuart114@gmail.com>
|
||||
*/
|
||||
/*
|
||||
* To create "backend/eci_mb.h" (from project root directory):
|
||||
*
|
||||
* php backend/tools/gen_eci_mb_h.php
|
||||
*
|
||||
* NOTE: backend/tools/data/GB18030.TXT will have to be downloaded first from the tarball
|
||||
* https://haible.de/bruno/charsets/conversion-tables/GB18030.tar.bz2
|
||||
* using the version jdk-1.4.2/GB18030.TXT
|
||||
*/
|
||||
// 'zint.assertions' should set to 1 in php.ini
|
||||
|
||||
$copyright_text = <<<'EOD'
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. Neither the name of the project nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
EOD;
|
||||
|
||||
$basename = basename(__FILE__);
|
||||
$dirname = dirname(__FILE__);
|
||||
|
||||
$opts = getopt('d:o:');
|
||||
$data_dirname = isset($opts['d']) ? $opts['d'] : ($dirname . '/data'); // Where to load file from.
|
||||
$out_dirname = isset($opts['o']) ? $opts['o'] : ($dirname . '/..'); // Where to put output.
|
||||
|
||||
$year = 2022;
|
||||
|
||||
function out_header(&$out, $name, $descr, $file, $start_year = 0, $extra_comment = '') {
|
||||
global $copyright_text, $basename, $year;
|
||||
$caps = strtoupper($name);
|
||||
$out[] = '/* ' . $name . '.h - tables for Unicode to ' . $descr . ',';
|
||||
$out[] = ' ' . 'generated by "backend/tools/' . $basename . '" from';
|
||||
if ($extra_comment !== '') {
|
||||
$out[] = ' "' . $file . '"';
|
||||
$out[] = ' ' . $extra_comment . ' */';
|
||||
} else {
|
||||
$out[] = ' "' . $file . '" */';
|
||||
}
|
||||
$out[] = '/*';
|
||||
$out[] = ' libzint - the open source barcode library';
|
||||
if ($start_year && $start_year != $year) {
|
||||
$out[] = ' Copyright (C) ' . $start_year . '-' . $year . ' Robin Stuart <rstuart114@gmail.com>';
|
||||
} else {
|
||||
$out[] = ' Copyright (C) ' . $year . ' Robin Stuart <rstuart114@gmail.com>';
|
||||
}
|
||||
$out = array_merge($out, explode("\n", $copyright_text));
|
||||
$out[] = '#ifndef Z_' . $caps . '_H';
|
||||
$out[] = '#define Z_' . $caps . '_H';
|
||||
}
|
||||
|
||||
/* Output a block of table entries to `$out` array */
|
||||
function out_tab_entries(&$out, $arr, $cnt, $not_hex = false) {
|
||||
$line = ' ';
|
||||
for ($i = 0; $i < $cnt; $i++) {
|
||||
if ($i && $i % 8 === 0) {
|
||||
$out[] = $line;
|
||||
$line = ' ';
|
||||
}
|
||||
if ($not_hex) {
|
||||
$line .= sprintf(' %5d,', $arr[$i]);
|
||||
} else {
|
||||
$line .= sprintf(' 0x%04X,', $arr[$i]);
|
||||
}
|
||||
}
|
||||
if ($line !== ' ') {
|
||||
$out[] = $line;
|
||||
}
|
||||
}
|
||||
|
||||
/* Output tables to `$out` array */
|
||||
function out_tabs(&$out, $name, $sort, $mb, $no_u_ind = false, $u_comment = '', $mb_comment = '') {
|
||||
if ($u_comment == '') $u_comment = 'Unicode codepoints sorted';
|
||||
$cnt_sort = count($sort);
|
||||
$out[] = '';
|
||||
$out[] = '/* ' . $u_comment . ' */';
|
||||
$out[] = 'static const unsigned short ' . $name . '_u[' . $cnt_sort . '] = {';
|
||||
out_tab_entries($out, $sort, $cnt_sort);
|
||||
$out[] = '};';
|
||||
|
||||
if (!empty($mb)) {
|
||||
if ($mb_comment == '') $mb_comment = 'Multibyte values sorted in Unicode order';
|
||||
$cnt = count($mb);
|
||||
$out[] = '';
|
||||
$out[] = '/* ' . $mb_comment . ' */';
|
||||
$out[] = 'static const unsigned short ' . $name . '_mb[' . $cnt . '] = {';
|
||||
$line = ' ';
|
||||
out_tab_entries($out, $mb, $cnt);
|
||||
$out[] = '};';
|
||||
}
|
||||
if (!$no_u_ind) {
|
||||
$ind_cnt = ($sort[$cnt_sort - 1] >> 8) + 1;
|
||||
$out[] = '';
|
||||
$out[] = '/* Indexes into Unicode `' . $name . '_u[]` array in blocks of 0x100 */';
|
||||
$ind_idx = count($out);
|
||||
$out[] = 'static const unsigned short ' . $name . '_u_ind[] = {';
|
||||
$line = ' ';
|
||||
$i = 0;
|
||||
foreach ($sort as $ind => $u) {
|
||||
$div = ($u - $sort[0]) >> 8;
|
||||
while ($div >= $i) {
|
||||
if ($i && $i % 8 === 0) {
|
||||
$out[] = $line;
|
||||
$line = ' ';
|
||||
}
|
||||
$line .= sprintf(' %5d,', $ind);
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
if ($line !== ' ') {
|
||||
$out[] = $line;
|
||||
$line = ' ';
|
||||
}
|
||||
$out[] = '};';
|
||||
$out[$ind_idx] = 'static const unsigned short ' . $name . '_u_ind[' . $i . '] = {';
|
||||
}
|
||||
}
|
||||
|
||||
/* Helper to output special-case URO (Unified Repertoire and Ordering) block (U+4E00-U+9FFF) tables */
|
||||
function out_uro_tabs(&$out, $name, $tab_uro_u, $tab_uro_mb_ind) {
|
||||
$cnt = count($tab_uro_u);
|
||||
$out[] = '';
|
||||
$out[] = '/* Unicode usage bit-flags for URO (U+4E00-U+9FFF) block */';
|
||||
$out[] = 'static const unsigned short ' . $name . '_uro_u[' . $cnt . '] = {';
|
||||
out_tab_entries($out, $tab_uro_u, $cnt);
|
||||
$cnt = count($tab_uro_mb_ind);
|
||||
$out[] = '};';
|
||||
$out[] = '';
|
||||
$out[] = '/* Multibyte indexes for URO (U+4E00-U+9FFF) block */';
|
||||
$out[] = 'static const unsigned short ' . $name . '_uro_mb_ind[' . $cnt . '] = {';
|
||||
out_tab_entries($out, $tab_uro_mb_ind, $cnt, true /*not_hex*/);
|
||||
$out[] = '};';
|
||||
}
|
||||
|
||||
// BIG5
|
||||
|
||||
$out = array();
|
||||
|
||||
out_header($out, 'big5', 'Big5', 'https://unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT', 2021);
|
||||
|
||||
$file = $data_dirname . '/' . 'BIG5.TXT';
|
||||
|
||||
// Read the file.
|
||||
|
||||
if (($get = file_get_contents($file)) === false) {
|
||||
error_log($error = "$basename: ERROR: Could not read mapping file \"$file\"");
|
||||
exit($error . PHP_EOL);
|
||||
}
|
||||
|
||||
$lines = explode("\n", $get);
|
||||
|
||||
// Parse the file.
|
||||
|
||||
$sort = array();
|
||||
$mb = array();
|
||||
foreach ($lines as $line) {
|
||||
$line = trim($line);
|
||||
if ($line === '' || strncmp($line, '0x', 2) !== 0 || strpos($line, "*** NO MAPPING ***") !== false) {
|
||||
continue;
|
||||
}
|
||||
$matches = array();
|
||||
if (preg_match('/^0x([0-9A-F]{4})[ \t]+0x([0-9A-F]{4})[ \t].*$/', $line, $matches)) {
|
||||
$d = hexdec($matches[1]);
|
||||
$u = hexdec($matches[2]);
|
||||
$sort[] = $u;
|
||||
$mb[] = $d;
|
||||
}
|
||||
}
|
||||
|
||||
array_multisort($sort, $mb);
|
||||
|
||||
// Calculate URO (U+4E00-U+9FFF) table
|
||||
for ($u_i = 0, $cnt = count($sort); $u_i < $cnt && $sort[$u_i] < 0x4E00; $u_i++);
|
||||
|
||||
$start_u_i = $u_i;
|
||||
$big5_uro_u = $big5_uro_mb_ind = array();
|
||||
for ($u = 0x4E00; $u <= 0x9FAF; $u += 16) {
|
||||
$used = 0;
|
||||
$next_u_i = $u_i;
|
||||
for ($j = 0; $j < 16; $j++) {
|
||||
if (($i = array_search($u + $j, $sort)) !== false) {
|
||||
$used |= 1 << $j;
|
||||
$next_u_i = $i + 1;
|
||||
$end_u_i = $i;
|
||||
}
|
||||
}
|
||||
$big5_uro_u[] = $used;
|
||||
$big5_uro_mb_ind[] = $u_i;
|
||||
$u_i = $next_u_i;
|
||||
}
|
||||
|
||||
// Output URO tables
|
||||
out_uro_tabs($out, 'big5', $big5_uro_u, $big5_uro_mb_ind);
|
||||
|
||||
// Remove URO block from Unicode table
|
||||
array_splice($sort, $start_u_i, $end_u_i - $start_u_i + 1);
|
||||
|
||||
// Output Big5 tables
|
||||
|
||||
out_tabs($out, 'big5', $sort, $mb, true /*no_ind*/);
|
||||
|
||||
$out[] = '';
|
||||
$out[] = '#endif /* Z_BIG5_H */';
|
||||
|
||||
file_put_contents($out_dirname . '/big5.h', implode("\n", $out) . "\n");
|
||||
|
||||
// EUC-KR (KS X 1001)
|
||||
|
||||
$out = array();
|
||||
|
||||
out_header($out, 'ksx1001', 'EUC-KR (KS X 1001)',
|
||||
'https://unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/KSC/KSX1001.TXT', 2021);
|
||||
|
||||
$file = $data_dirname . '/' . 'KSX1001.TXT';
|
||||
|
||||
// Read the file.
|
||||
|
||||
if (($get = file_get_contents($file)) === false) {
|
||||
error_log($error = "$basename: ERROR: Could not read mapping file \"$file\"");
|
||||
exit($error . PHP_EOL);
|
||||
}
|
||||
|
||||
$lines = explode("\n", $get);
|
||||
|
||||
// Parse the file.
|
||||
|
||||
$sort = array();
|
||||
$mb = array();
|
||||
foreach ($lines as $line) {
|
||||
$line = trim($line);
|
||||
if ($line === '' || strncmp($line, '0x', 2) !== 0 || strpos($line, "*** NO MAPPING ***") !== false) {
|
||||
continue;
|
||||
}
|
||||
$matches = array();
|
||||
if (preg_match('/^0x([0-9A-F]{4})[ \t]+0x([0-9A-F]{4})[ \t].*$/', $line, $matches)) {
|
||||
$d = hexdec($matches[1]) + 0x8080; // Convert to EUC-KR
|
||||
$u = hexdec($matches[2]);
|
||||
$sort[] = $u;
|
||||
$mb[] = $d;
|
||||
}
|
||||
}
|
||||
|
||||
// Add some characters defined later than in KSX1001.TXT
|
||||
|
||||
$sort[] = 0x20AC; // Euro sign added KS X 1001:1998
|
||||
$mb[] = 0x2266 + 0x8080;
|
||||
|
||||
$sort[] = 0xAE; // Registered trademark added KS X 1001:1998
|
||||
$mb[] = 0x2267 + 0x8080;
|
||||
|
||||
$sort[] = 0x327E; // Korean postal code symbol added KS X 1001:2002
|
||||
$mb[]= 0x2268 + 0x8080;
|
||||
|
||||
array_multisort($sort, $mb);
|
||||
|
||||
// Calculate URO (U+4E00-U+9FFF) table
|
||||
for ($u_i = 0, $cnt = count($sort); $u_i < $cnt && $sort[$u_i] < 0x4E00; $u_i++);
|
||||
|
||||
$start_u_i = $u_i;
|
||||
$ksx1001_uro_u = $ksx1001_uro_mb_ind = array();
|
||||
for ($u = 0x4E00; $u <= 0x9F9F; $u += 16) {
|
||||
$used = 0;
|
||||
$next_u_i = $u_i;
|
||||
for ($j = 0; $j < 16; $j++) {
|
||||
if (($i = array_search($u + $j, $sort)) !== false) {
|
||||
$used |= 1 << $j;
|
||||
$next_u_i = $i + 1;
|
||||
$end_u_i = $i;
|
||||
}
|
||||
}
|
||||
$ksx1001_uro_u[] = $used;
|
||||
$ksx1001_uro_mb_ind[] = $u_i;
|
||||
$u_i = $next_u_i;
|
||||
}
|
||||
|
||||
// Output URO tables
|
||||
out_uro_tabs($out, 'ksx1001', $ksx1001_uro_u, $ksx1001_uro_mb_ind);
|
||||
|
||||
// Remove URO block from Unicode table
|
||||
array_splice($sort, $start_u_i, $end_u_i - $start_u_i + 1);
|
||||
|
||||
// Output KS X 1001 tables
|
||||
out_tabs($out, 'ksx1001', $sort, $mb);
|
||||
|
||||
$out[] = '';
|
||||
$out[] = '#endif /* Z_KSX1001_H */';
|
||||
|
||||
file_put_contents($out_dirname . '/ksx1001.h', implode("\n", $out) . "\n");
|
||||
|
||||
// Shift JIS
|
||||
|
||||
$out = array();
|
||||
|
||||
out_header($out, 'sjis', 'Shift JIS', 'https://unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/SHIFTJIS.TXT', 2009);
|
||||
|
||||
$file = $data_dirname . '/' . 'SHIFTJIS.TXT';
|
||||
|
||||
// Read the file.
|
||||
|
||||
if (($get = file_get_contents($file)) === false) {
|
||||
error_log($error = "$basename: ERROR: Could not read mapping file \"$file\"");
|
||||
exit($error . PHP_EOL);
|
||||
}
|
||||
|
||||
$lines = explode("\n", $get);
|
||||
|
||||
// Parse the file.
|
||||
|
||||
$sort = array();
|
||||
$mb = array();
|
||||
foreach ($lines as $line) {
|
||||
$line = trim($line);
|
||||
if ($line === '' || strncmp($line, '0x', 2) !== 0 || strpos($line, "*** NO MAPPING ***") !== false) {
|
||||
continue;
|
||||
}
|
||||
$matches = array();
|
||||
if (preg_match('/^0x([0-9A-F]{2,4})[ \t]+0x([0-9A-F]{4})[ \t].*$/', $line, $matches)) {
|
||||
$d = hexdec($matches[1]);
|
||||
if ($d < 0x80 && $d != 0x5C && $d != 0x7E) {
|
||||
continue;
|
||||
}
|
||||
$u = hexdec($matches[2]);
|
||||
// PUA characters (user-defined range), dealt with programatically by `u_sjis()`
|
||||
// See CJKV Information Processing by Ken Lunde, 2nd ed., Table 4-86, p.286
|
||||
// https://file.allitebooks.com/20160708/CJKV%20Information%20Processing.pdf
|
||||
if ($u >= 0xE000 && $u <= 0xE757) {
|
||||
continue;
|
||||
}
|
||||
$sort[] = $u;
|
||||
$mb[] = $d;
|
||||
}
|
||||
}
|
||||
|
||||
array_multisort($sort, $mb);
|
||||
|
||||
// Calculate URO (U+4E00-U+9FFF) table
|
||||
for ($u_i = 0, $cnt = count($sort); $u_i < $cnt && $sort[$u_i] < 0x4E00; $u_i++);
|
||||
|
||||
$start_u_i = $u_i;
|
||||
$sjis_uro_u = $sjis_uro_mb_ind = array();
|
||||
for ($u = 0x4E00; $u <= 0x9FAF; $u += 16) {
|
||||
$used = 0;
|
||||
$next_u_i = $u_i;
|
||||
for ($j = 0; $j < 16; $j++) {
|
||||
if (($i = array_search($u + $j, $sort)) !== false) {
|
||||
$used |= 1 << $j;
|
||||
$next_u_i = $i + 1;
|
||||
$end_u_i = $i;
|
||||
}
|
||||
}
|
||||
$sjis_uro_u[] = $used;
|
||||
$sjis_uro_mb_ind[] = $u_i;
|
||||
$u_i = $next_u_i;
|
||||
}
|
||||
|
||||
// Output URO tables
|
||||
out_uro_tabs($out, 'sjis', $sjis_uro_u, $sjis_uro_mb_ind);
|
||||
|
||||
// Remove URO block from Unicode table
|
||||
array_splice($sort, $start_u_i, $end_u_i - $start_u_i + 1);
|
||||
|
||||
// Output Shift JIS tables
|
||||
out_tabs($out, 'sjis', $sort, $mb, true /*no_ind*/);
|
||||
|
||||
$out[] = '';
|
||||
$out[] = '#endif /* Z_SJIS_H */';
|
||||
|
||||
file_put_contents($out_dirname . '/sjis.h', implode("\n", $out) . "\n");
|
||||
|
||||
// GB 2312
|
||||
|
||||
$out = array();
|
||||
|
||||
out_header($out, 'gb2312', 'GB 2312-1980 (EUC-CN)',
|
||||
'unicode.org-mappings/EASTASIA/GB/GB2312.TXT', 2009,
|
||||
'(see https://haible.de/bruno/charsets/conversion-tables/GB2312.tar.bz2)');
|
||||
|
||||
$file = $data_dirname . '/' . 'GB2312.TXT';
|
||||
|
||||
// Read the file.
|
||||
|
||||
if (($get = file_get_contents($file)) === false) {
|
||||
error_log($error = "$basename: ERROR: Could not read mapping file \"$file\"");
|
||||
exit($error . PHP_EOL);
|
||||
}
|
||||
|
||||
$lines = explode("\n", $get);
|
||||
|
||||
// Parse the file.
|
||||
|
||||
$sort = array();
|
||||
$mb = array();
|
||||
$in_gb2312 = array();
|
||||
foreach ($lines as $line) {
|
||||
$line = trim($line);
|
||||
if ($line === '' || strncmp($line, '0x', 2) !== 0 || strpos($line, "*** NO MAPPING ***") !== false) {
|
||||
continue;
|
||||
}
|
||||
$matches = array();
|
||||
if (preg_match('/^0x([0-9A-F]{2,4})[ \t]+0x([0-9A-F]{4})[ \t].*$/', $line, $matches)) {
|
||||
$d = hexdec($matches[1]);
|
||||
if ($d < 0x80) {
|
||||
continue;
|
||||
}
|
||||
$u = hexdec($matches[2]);
|
||||
$sort[] = $u;
|
||||
$mb[] = $d + 0x8080; // Convert to EUC-CN
|
||||
$in_gb2312[$u] = true;
|
||||
}
|
||||
}
|
||||
|
||||
array_multisort($sort, $mb);
|
||||
|
||||
// Calculate URO (U+4E00-U+9FFF) table
|
||||
for ($u_i = 0, $cnt = count($sort); $u_i < $cnt && $sort[$u_i] < 0x4E00; $u_i++);
|
||||
|
||||
$start_u_i = $u_i;
|
||||
$gb2312_uro_u = $gb2312_uro_mb_ind = array();
|
||||
for ($u = 0x4E00; $u <= 0x9CEF; $u += 16) {
|
||||
$used = 0;
|
||||
$next_u_i = $u_i;
|
||||
for ($j = 0; $j < 16; $j++) {
|
||||
if (($i = array_search($u + $j, $sort)) !== false) {
|
||||
$used |= 1 << $j;
|
||||
$next_u_i = $i + 1;
|
||||
$end_u_i = $i;
|
||||
}
|
||||
}
|
||||
$gb2312_uro_u[] = $used;
|
||||
$gb2312_uro_mb_ind[] = $u_i;
|
||||
$u_i = $next_u_i;
|
||||
}
|
||||
|
||||
// Output URO tables
|
||||
out_uro_tabs($out, 'gb2312', $gb2312_uro_u, $gb2312_uro_mb_ind);
|
||||
|
||||
// Remove URO block from Unicode table
|
||||
array_splice($sort, $start_u_i, $end_u_i - $start_u_i + 1);
|
||||
|
||||
// Output GB 2312 tables
|
||||
out_tabs($out, 'gb2312', $sort, $mb);
|
||||
|
||||
$out[] = '';
|
||||
$out[] = '#endif /* Z_GB2312_H */';
|
||||
|
||||
file_put_contents($out_dirname . '/gb2312.h', implode("\n", $out) . "\n");
|
||||
|
||||
// GBK
|
||||
|
||||
$out = array();
|
||||
|
||||
out_header($out, 'gbk', 'GBK, excluding mappings in GB 2312',
|
||||
'https://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP936.TXT');
|
||||
|
||||
$file = $data_dirname . '/' . 'CP936.TXT';
|
||||
|
||||
// Read the file.
|
||||
|
||||
if (($get = file_get_contents($file)) === false) {
|
||||
error_log($error = "$basename: ERROR: Could not read mapping file \"$file\"");
|
||||
exit($error . PHP_EOL);
|
||||
}
|
||||
|
||||
$lines = explode("\n", $get);
|
||||
|
||||
// Parse the file.
|
||||
|
||||
$sort = array();
|
||||
$mb = array();
|
||||
$in_gbk = array();
|
||||
foreach ($lines as $line) {
|
||||
$line = trim($line);
|
||||
if ($line === '' || strncmp($line, '0x', 2) !== 0 || strpos($line, "*** NO MAPPING ***") !== false) {
|
||||
continue;
|
||||
}
|
||||
$matches = array();
|
||||
if (preg_match('/^0x([0-9A-F]{2,4})[ \t]+0x([0-9A-F]{4})[ \t].*$/', $line, $matches)) {
|
||||
$d = hexdec($matches[1]);
|
||||
if ($d < 0x80) {
|
||||
continue;
|
||||
}
|
||||
$u = hexdec($matches[2]);
|
||||
$in_gbk[$u] = true;
|
||||
if ($u != 0x2015 && isset($in_gb2312[$u])) { // U+2015 mapped differently by GBK
|
||||
continue;
|
||||
}
|
||||
$sort[] = $u;
|
||||
$mb[] = $d;
|
||||
}
|
||||
}
|
||||
|
||||
array_multisort($sort, $mb);
|
||||
|
||||
// Calculate URO (U+4E00-U+9FFF) table
|
||||
for ($u_i = 0, $cnt = count($sort); $u_i < $cnt && $sort[$u_i] < 0x4E00; $u_i++);
|
||||
|
||||
$start_u_i = $u_i;
|
||||
$gbk_uro_u = $gbk_uro_mb_ind = array();
|
||||
for ($u = 0x4E00; $u <= 0x9FAF; $u += 16) {
|
||||
$used = 0;
|
||||
$next_u_i = $u_i;
|
||||
for ($j = 0; $j < 16; $j++) {
|
||||
if (($i = array_search($u + $j, $sort)) !== false) {
|
||||
$used |= 1 << $j;
|
||||
$next_u_i = $i + 1;
|
||||
$end_u_i = $i;
|
||||
}
|
||||
}
|
||||
$gbk_uro_u[] = $used;
|
||||
$gbk_uro_mb_ind[] = $u_i;
|
||||
$u_i = $next_u_i;
|
||||
}
|
||||
|
||||
// Output URO tables
|
||||
out_uro_tabs($out, 'gbk', $gbk_uro_u, $gbk_uro_mb_ind);
|
||||
|
||||
// Remove URO block from Unicode table
|
||||
array_splice($sort, $start_u_i, $end_u_i - $start_u_i + 1);
|
||||
|
||||
// Output GBK tables
|
||||
out_tabs($out, 'gbk', $sort, $mb, true /*no_ind*/);
|
||||
|
||||
$out[] = '';
|
||||
$out[] = '#endif /* Z_GBK_H */';
|
||||
|
||||
file_put_contents($out_dirname . '/gbk.h', implode("\n", $out) . "\n");
|
||||
|
||||
// GB 18030
|
||||
|
||||
$out = array();
|
||||
|
||||
out_header($out, 'gb18030', 'GB 18030-2005', 'jdk-1.4.2/GB18030.TXT', 2016,
|
||||
'(see https://haible.de/bruno/charsets/conversion-tables/GB18030.tar.bz2)');
|
||||
|
||||
$file = $data_dirname . '/' . 'GB18030.TXT';
|
||||
|
||||
// Read the file.
|
||||
|
||||
if (($get = file_get_contents($file)) === false) {
|
||||
error_log($error = "$basename: ERROR: Could not read mapping file \"$file\"");
|
||||
exit($error . PHP_EOL);
|
||||
}
|
||||
|
||||
$lines = explode("\n", $get);
|
||||
|
||||
// Parse the file.
|
||||
|
||||
$sort2 = array();
|
||||
$mb2 = array();
|
||||
$sort4 = array();
|
||||
$mb4 = array();
|
||||
|
||||
foreach ($lines as $line) {
|
||||
$line = trim($line);
|
||||
if ($line === '' || strncmp($line, '0x', 2) !== 0 || strpos($line, "*** NO MAPPING ***") !== false) {
|
||||
continue;
|
||||
}
|
||||
if (preg_match('/^0x([0-9A-F]{2,8})[ \t]+0x([0-9A-F]{5})/', $line)) { // Exclude U+10000..10FFFF to save space
|
||||
continue;
|
||||
}
|
||||
$matches = array();
|
||||
if (preg_match('/^0x([0-9A-F]{2,8})[ \t]+0x([0-9A-F]{4}).*$/', $line, $matches)) {
|
||||
$d = hexdec($matches[1]);
|
||||
if ($d < 0x80) {
|
||||
continue;
|
||||
}
|
||||
$u = hexdec($matches[2]);
|
||||
// 2-byte extension GB 18030-2005 change, were PUA, see Table 3-37, p.109, Lunde 2nd ed.
|
||||
if (($u >= 0x9FB4 && $u <= 0x9FBB) || ($u >= 0xFE10 && $u <= 0xFE19)) {
|
||||
//continue;
|
||||
}
|
||||
// 4-byte extension change, PUA
|
||||
if ($u == 0xE7C7) {
|
||||
continue;
|
||||
}
|
||||
if ($d < 0x10000) {
|
||||
if (isset($in_gbk[$u])) {
|
||||
continue;
|
||||
}
|
||||
// User-defined, dealt with programatically by `u_gb18030()`
|
||||
if ($u >= 0xE000 && $u <= 0xE765) {
|
||||
continue;
|
||||
}
|
||||
$sort2[] = $u;
|
||||
$mb2[] = $d;
|
||||
} else if ($u < 0x10000) {
|
||||
$sort4[] = $u;
|
||||
$mb4[] = $d;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 2-byte extension GB 18030-2005 change, was PUA U+E7C7 below, see Table 3-39, p.111, Lunde 2nd ed. */
|
||||
$sort2[] = 0x1E3F; $mb2[] = 0xA8BC;
|
||||
|
||||
/* 2-byte extension GB 18030-2005 change, were PUA, see Table 3-37, p.109, Lunde 2nd ed. */
|
||||
$sort2[] = 0x9FB4; $mb2[] = 0xFE59;
|
||||
$sort2[] = 0x9FB5; $mb2[] = 0xFE61;
|
||||
$sort2[] = 0x9FB6; $mb2[] = 0xFE66;
|
||||
$sort2[] = 0x9FB7; $mb2[] = 0xFE67;
|
||||
$sort2[] = 0x9FB8; $mb2[] = 0xFE6D;
|
||||
$sort2[] = 0x9FB9; $mb2[] = 0xFE7E;
|
||||
$sort2[] = 0x9FBA; $mb2[] = 0xFE90;
|
||||
$sort2[] = 0x9FBB; $mb2[] = 0xFEA0;
|
||||
|
||||
$sort2[] = 0xFE10; $mb2[] = 0xA6D9;
|
||||
$sort2[] = 0xFE11; $mb2[] = 0xA6DB;
|
||||
$sort2[] = 0xFE12; $mb2[] = 0xA6DA;
|
||||
$sort2[] = 0xFE13; $mb2[] = 0xA6DC;
|
||||
$sort2[] = 0xFE14; $mb2[] = 0xA6DD;
|
||||
$sort2[] = 0xFE15; $mb2[] = 0xA6DE;
|
||||
$sort2[] = 0xFE16; $mb2[] = 0xA6DF;
|
||||
$sort2[] = 0xFE17; $mb2[] = 0xA6EC;
|
||||
$sort2[] = 0xFE18; $mb2[] = 0xA6ED;
|
||||
$sort2[] = 0xFE19; $mb2[] = 0xA6F3;
|
||||
|
||||
/* 4-byte extension PUA */
|
||||
// Dealt with by `u_gb18030()`
|
||||
//$sort4[] = 0xE7C7;
|
||||
//$mb4[] = 0x8135F437;
|
||||
|
||||
// Calculate Unicode start/end codepoints mapping to consecutive 4-byte blocks
|
||||
|
||||
array_multisort($sort4, $mb4);
|
||||
|
||||
$gb18030_4_u_b = array();
|
||||
$gb18030_4_u_e = array();
|
||||
$gb18030_4_mb_o = array();
|
||||
|
||||
// Start/end points
|
||||
$prev_u = $begin_u = $sort4[0];
|
||||
for ($i = 1, $cnt = count($sort4); $i < $cnt; $i++) {
|
||||
$u = $sort4[$i];
|
||||
if ($u === $prev_u + 1) {
|
||||
$prev_u++;
|
||||
continue;
|
||||
}
|
||||
$gb18030_4_u_b[] = $begin_u;
|
||||
$gb18030_4_u_e[] = $prev_u;
|
||||
$begin_u = $prev_u = $u;
|
||||
}
|
||||
$gb18030_4_u_b[] = $begin_u;
|
||||
$gb18030_4_u_e[] = $prev_u;
|
||||
|
||||
// Gaps between blocks
|
||||
$gb18030_4_mb_o[] = 0;
|
||||
for ($i = 1, $cnt = count($gb18030_4_u_b); $i < $cnt; $i++) {
|
||||
$gb18030_4_mb_o[] = $gb18030_4_u_b[$i] - ($gb18030_4_u_e[$i - 1] + 1) + $gb18030_4_mb_o[count($gb18030_4_mb_o) - 1];
|
||||
}
|
||||
|
||||
// Output GB 18030 tables
|
||||
|
||||
array_multisort($sort2, $mb2);
|
||||
out_tabs($out, 'gb18030_2', $sort2, $mb2, true /*no_ind*/);
|
||||
|
||||
// Start codepoints `gb18030_4_u_b` array not needed by `u_gb18030()`
|
||||
$cnt = count($gb18030_4_u_e);
|
||||
$out[] = '';
|
||||
$out[] = '/* End Unicode codepoints of blocks mapping consecutively to 4-byte multibyte blocks */';
|
||||
$out[] = 'static const unsigned short gb18030_4_u_e[' . $cnt .'] = {';
|
||||
out_tab_entries($out, $gb18030_4_u_e, $cnt);
|
||||
$out[] = '};';
|
||||
$cnt = count($gb18030_4_mb_o);
|
||||
$out[] = '';
|
||||
$out[] = '/* Cumulative gaps between Unicode blocks mapping consecutively to 4-byte multibyte blocks,';
|
||||
$out[] = ' used to adjust multibyte offsets */';
|
||||
$out[] = 'static const unsigned short gb18030_4_mb_o[' . $cnt .'] = {';
|
||||
out_tab_entries($out, $gb18030_4_mb_o, $cnt, true /*not_hex*/);
|
||||
$out[] = '};';
|
||||
|
||||
$out[] = '';
|
||||
$out[] = '#endif /* Z_GB18030_H */';
|
||||
|
||||
file_put_contents($out_dirname . '/gb18030.h', implode("\n", $out) . "\n");
|
||||
|
||||
/* vim: set ts=4 sw=4 et : */
|
335
backend/tools/gen_eci_sb_h.php
Normal file
335
backend/tools/gen_eci_sb_h.php
Normal file
@ -0,0 +1,335 @@
|
||||
<?php
|
||||
/* Generate ECI single-byte tables & routines from unicode.org mapping files */
|
||||
/*
|
||||
libzint - the open source barcode library
|
||||
Copyright (C) 2022 Robin Stuart <rstuart114@gmail.com>
|
||||
*/
|
||||
/*
|
||||
* To create "backend/eci_sb.h" (from project root directory):
|
||||
*
|
||||
* php backend/tools/gen_eci_sb_h.php
|
||||
*
|
||||
* Requires "8859-*.TXT" from https://unicode.org/Public/MAPPINGS/ISO8859/
|
||||
* and "CP1250/1/2/6.TXT" from https://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/
|
||||
* to be in "backend/tools/data" directory.
|
||||
*/
|
||||
|
||||
$basename = basename(__FILE__);
|
||||
$dirname = dirname(__FILE__);
|
||||
|
||||
$opts = getopt('d:o:');
|
||||
$data_dirname = isset($opts['d']) ? $opts['d'] : ($dirname . '/data'); // Where to load file from.
|
||||
$out_dirname = isset($opts['o']) ? $opts['o'] : ($dirname . '/..'); // Where to put output.
|
||||
|
||||
$out = array();
|
||||
|
||||
$head = <<<'EOD'
|
||||
/* eci_sb.h - Extended Channel Interpretations single-byte,
|
||||
generated by "backend/tools/gen_eci_sb_h.php" from
|
||||
"https://unicode.org/Public/MAPPINGS/ISO8859/8859-*.TXT" and
|
||||
"https://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP125*.TXT" */
|
||||
/* libzint - the open source barcode library
|
||||
Copyright (C) 2021-2022 Robin Stuart <rstuart114@gmail.com>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. Neither the name of the project nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef Z_ECI_SB_H
|
||||
#define Z_ECI_SB_H
|
||||
EOD;
|
||||
|
||||
$out = explode("\n", $head);
|
||||
|
||||
$u_iso8859 = <<<'EOD'
|
||||
|
||||
/* Forward reference to base ISO/IEC 8859 routine - see "eci.c" */
|
||||
static int u_iso8859(const unsigned int u, const unsigned short *tab_s, const unsigned short *tab_u,
|
||||
const unsigned char *tab_sb, int e, unsigned char *dest);
|
||||
EOD;
|
||||
|
||||
$out = array_merge($out, explode("\n", $u_iso8859));
|
||||
|
||||
$iso8859_comments = array(
|
||||
array(), array(), // 0-1
|
||||
// ECI Description
|
||||
array( '4', 'Latin alphabet No. 2 (Latin-2)' ),
|
||||
array( '5', 'Latin alphabet No. 3 (Latin-3) (South European)' ),
|
||||
array( '6', 'Latin alphabet No. 4 (Latin-4) (North European)' ),
|
||||
array( '7', 'Latin/Cyrillic' ),
|
||||
array( '8', 'Latin/Arabic' ),
|
||||
array( '9', 'Latin/Greek' ),
|
||||
array( '10', 'Latin/Hebrew' ),
|
||||
array( '11', 'Latin alphabet No. 5 (Latin-5) (Latin/Turkish)' ),
|
||||
array( '12', 'Latin alphabet No. 6 (Latin-6) (Nordic)' ),
|
||||
array( '13', 'Latin/Thai' ),
|
||||
array(),
|
||||
array( '15', 'Latin alphabet No. 7 (Latin-7) (Baltic Rim)' ),
|
||||
array( '16', 'Latin alphabet No. 8 (Latin-8) (Celtic)' ),
|
||||
array( '17', 'Latin alphabet No. 9 (Latin-9)' ),
|
||||
array( '18', 'Latin alphabet No. 10 (Latin-10) (South-Eastern European)' ),
|
||||
);
|
||||
|
||||
// Read the 8859 files.
|
||||
|
||||
$tot_8859 = 0;
|
||||
for ($k = 2; $k <= 16; $k++) {
|
||||
if ($k == 12) continue;
|
||||
|
||||
$file = $data_dirname . '/' . '8859-' . $k . '.TXT';
|
||||
|
||||
if (($get = file_get_contents($file)) === false) {
|
||||
error_log($error = "$basename: ERROR: Could not read mapping file \"$file\"");
|
||||
exit($error . PHP_EOL);
|
||||
}
|
||||
|
||||
$lines = explode("\n", $get);
|
||||
|
||||
// Parse the file.
|
||||
|
||||
$sort = array();
|
||||
$sb = array();
|
||||
$same = array();
|
||||
foreach ($lines as $line) {
|
||||
$line = trim($line);
|
||||
if ($line === '' || strncmp($line, '0x', 2) !== 0 || strpos($line, "*** NO MAPPING ***") !== false) {
|
||||
continue;
|
||||
}
|
||||
$matches = array();
|
||||
if (preg_match('/^0x([0-9A-F]{2})[ \t]+0x([0-9A-F]{4})[ \t].*$/', $line, $matches)) {
|
||||
$mb = hexdec($matches[1]);
|
||||
$unicode = hexdec($matches[2]);
|
||||
if ($unicode >= 0xA0) {
|
||||
if ($unicode <= 0xFF && $unicode == $mb) {
|
||||
$same[] = $mb;
|
||||
} else {
|
||||
$sort[] = $unicode;
|
||||
$sb[] = $mb;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sort($same);
|
||||
array_multisort($sort, $sb);
|
||||
|
||||
$s = array( 0, 0, 0, 0, 0, 0 );
|
||||
for ($i = 0, $cnt = count($same); $i < $cnt; $i++) {
|
||||
$v = $same[$i] - 0xA0;
|
||||
$j = $v >> 4;
|
||||
$s[$j] |= 1 << ($v & 0xF);
|
||||
}
|
||||
|
||||
// Output.
|
||||
|
||||
$out[] = '';
|
||||
$out[] = '/* Tables for ISO/IEC 8859-' . $k . ' */';
|
||||
$out[] = 'static const unsigned short iso8859_' . $k . '_s[6] = { /* Straight-thru bit-flags */';
|
||||
$line = ' ';
|
||||
for ($i = 0; $i < 6; $i++) {
|
||||
$line .= sprintf(" 0x%04X,", $s[$i]);
|
||||
}
|
||||
$out[] = $line;
|
||||
$out[] = '};';
|
||||
$tot_8859 += 6 * 2;
|
||||
|
||||
$cnt = count($sort);
|
||||
$out[] = 'static const unsigned short iso8859_' . $k . '_u[' . $cnt . '] = { /* Unicode codepoints sorted */';
|
||||
$line = ' ';
|
||||
for ($i = 0; $i < $cnt; $i++) {
|
||||
if ($i && $i % 8 === 0) {
|
||||
$out[] = $line;
|
||||
$line = ' ';
|
||||
}
|
||||
$line .= sprintf(' 0x%04X,', $sort[$i]);
|
||||
}
|
||||
if ($line !== ' ') {
|
||||
$out[] = $line;
|
||||
}
|
||||
$out[] = '};';
|
||||
$tot_8859 += $cnt * 2;
|
||||
|
||||
$cnt = count($sb);
|
||||
$out[] = 'static const unsigned char iso8859_' . $k . '_sb[' . $cnt . '] = { /* Single-byte in Unicode order */';
|
||||
$line = ' ';
|
||||
for ($i = 0; $i < $cnt; $i++) {
|
||||
if ($i && $i % 8 === 0) {
|
||||
$out[] = $line;
|
||||
$line = ' ';
|
||||
}
|
||||
$line .= sprintf(' 0x%02X,', $sb[$i]);
|
||||
}
|
||||
if ($line !== ' ') {
|
||||
$out[] = $line;
|
||||
}
|
||||
$out[] = '};';
|
||||
$tot_8859 += $cnt;
|
||||
|
||||
$out[] = '';
|
||||
$out[] = '/* ECI ' . $iso8859_comments[$k][0] . ' ISO/IEC 8859-' . $k . ' ' . $iso8859_comments[$k][1] . ' */';
|
||||
$out[] = 'static int u_iso8859_' . $k . '(const unsigned int u, unsigned char *dest) {';
|
||||
$out[] = ' return u_iso8859(u, iso8859_' . $k . '_s, iso8859_' . $k . '_u, iso8859_' . $k . '_sb, ARRAY_SIZE(iso8859_' . $k . '_u) - 1, dest);';
|
||||
$out[] = '}';
|
||||
}
|
||||
|
||||
if (0) {
|
||||
$out[] = '';
|
||||
$out[] = '/* Total ISO/IEC 8859 bytes: ' . $tot_8859 . ' */';
|
||||
}
|
||||
|
||||
$u_cp125x = <<<'EOD'
|
||||
|
||||
/* Forward reference to base Windows-125x routine - see "eci.c" */
|
||||
static int u_cp125x(const unsigned int u, const unsigned short *tab_s, const unsigned short *tab_u,
|
||||
const unsigned char *tab_sb, int e, unsigned char *dest);
|
||||
EOD;
|
||||
|
||||
$out = array_merge($out, explode("\n", $u_cp125x));
|
||||
|
||||
$cp125x_comments = array(
|
||||
// ECI Description
|
||||
array( '21', 'Latin 2 (Central Europe)' ),
|
||||
array( '22', 'Cyrillic' ),
|
||||
array( '23', 'Latin 1' ),
|
||||
array(), array(), array(),
|
||||
array( '24', 'Arabic' ),
|
||||
);
|
||||
|
||||
// Read the Windows 125x files.
|
||||
|
||||
$tot_cp125x = 0;
|
||||
for ($k = 0; $k <= 6; $k++) {
|
||||
if ($k >= 3 && $k <= 5) continue;
|
||||
|
||||
$file = $data_dirname . '/' . 'CP125' . $k . '.TXT';
|
||||
|
||||
if (($get = file_get_contents($file)) === false) {
|
||||
error_log($error = "$basename: ERROR: Could not read mapping file \"$file\"");
|
||||
exit($error . PHP_EOL);
|
||||
}
|
||||
|
||||
$lines = explode("\n", $get);
|
||||
|
||||
// Parse the file.
|
||||
|
||||
$sort = array();
|
||||
$sb = array();
|
||||
$same = array();
|
||||
foreach ($lines as $line) {
|
||||
$line = trim($line);
|
||||
if ($line === '' || strncmp($line, '0x', 2) !== 0 || strpos($line, "*** NO MAPPING ***") !== false) {
|
||||
continue;
|
||||
}
|
||||
$matches = array();
|
||||
if (preg_match('/^0x([0-9A-F]{2})[ \t]+0x([0-9A-F]{4})[ \t].*$/', $line, $matches)) {
|
||||
$mb = hexdec($matches[1]);
|
||||
$unicode = hexdec($matches[2]);
|
||||
if ($unicode >= 0x80) {
|
||||
if ($unicode <= 0xFF && $unicode == $mb) {
|
||||
$same[] = $mb;
|
||||
} else {
|
||||
$sort[] = $unicode;
|
||||
$sb[] = $mb;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sort($same);
|
||||
array_multisort($sort, $sb);
|
||||
|
||||
$s = array( 0, 0, 0, 0, 0, 0 );
|
||||
for ($i = 0, $cnt = count($same); $i < $cnt; $i++) {
|
||||
$v = $same[$i] - 0xA0;
|
||||
$j = $v >> 4;
|
||||
$s[$j] |= 1 << ($v & 0xF);
|
||||
}
|
||||
|
||||
// Output.
|
||||
|
||||
$out[] = '';
|
||||
$out[] = '/* Tables for Windows 125' . $k . ' */';
|
||||
$out[] = 'static const unsigned short cp125' . $k . '_s[6] = { /* Straight-thru bit-flags */';
|
||||
$line = ' ';
|
||||
for ($i = 0; $i < 6; $i++) {
|
||||
$line .= sprintf(" 0x%04X,", $s[$i]);
|
||||
}
|
||||
$out[] = $line;
|
||||
$out[] = '};';
|
||||
$tot_cp125x += 6 * 2;
|
||||
|
||||
$cnt = count($sort);
|
||||
$out[] = 'static const unsigned short cp125' . $k . '_u[' . $cnt . '] = { /* Unicode codepoints sorted */';
|
||||
$line = ' ';
|
||||
for ($i = 0; $i < $cnt; $i++) {
|
||||
if ($i && $i % 8 === 0) {
|
||||
$out[] = $line;
|
||||
$line = ' ';
|
||||
}
|
||||
$line .= sprintf(' 0x%04X,', $sort[$i]);
|
||||
}
|
||||
if ($line !== ' ') {
|
||||
$out[] = $line;
|
||||
}
|
||||
$out[] = '};';
|
||||
$tot_cp125x += $cnt * 2;
|
||||
|
||||
$cnt = count($sb);
|
||||
$out[] = 'static const unsigned char cp125' . $k . '_sb[' . $cnt . '] = { /* Single-byte in Unicode order */';
|
||||
$line = ' ';
|
||||
for ($i = 0; $i < $cnt; $i++) {
|
||||
if ($i && $i % 8 === 0) {
|
||||
$out[] = $line;
|
||||
$line = ' ';
|
||||
}
|
||||
$line .= sprintf(' 0x%02X,', $sb[$i]);
|
||||
}
|
||||
if ($line !== ' ') {
|
||||
$out[] = $line;
|
||||
}
|
||||
$out[] = '};';
|
||||
$tot_cp125x += $cnt;
|
||||
|
||||
$out[] = '';
|
||||
$out[] = '/* ECI ' . $cp125x_comments[$k][0] . ' Windows-125' . $k . ' ' . $cp125x_comments[$k][1] . ' */';
|
||||
$out[] = 'static int u_cp125' . $k . '(const unsigned int u, unsigned char *dest) {';
|
||||
$out[] = ' return u_cp125x(u, cp125' . $k . '_s, cp125' . $k . '_u, cp125' . $k . '_sb, ARRAY_SIZE(cp125' . $k . '_u) - 1, dest);';
|
||||
$out[] = '}';
|
||||
}
|
||||
|
||||
if (0) {
|
||||
$out[] = '';
|
||||
$out[] = '/* Total Windows 125x bytes: ' . $tot_cp125x . ' */';
|
||||
|
||||
$out[] = '';
|
||||
$out[] = '/* Total bytes: ' . ($tot_8859 + $tot_cp125x) . ' */';
|
||||
}
|
||||
|
||||
$out[] = '';
|
||||
$out[] = '#endif /* Z_ECI_SB_H */';
|
||||
|
||||
file_put_contents($out_dirname . '/eci_sb.h', implode("\n", $out) . "\n");
|
||||
|
||||
/* vim: set ts=4 sw=4 et : */
|
@ -41,6 +41,7 @@ HEADERS += ../backend/aztec.h \
|
||||
../backend/font.h \
|
||||
../backend/gb18030.h \
|
||||
../backend/gb2312.h \
|
||||
../backend/gbk.h \
|
||||
../backend/general_field.h \
|
||||
../backend/gridmtx.h \
|
||||
../backend/gs1.h \
|
||||
@ -85,8 +86,6 @@ SOURCES += ../backend/2of5.c \
|
||||
../backend/dotcode.c \
|
||||
../backend/eci.c \
|
||||
../backend/emf.c \
|
||||
../backend/gb18030.c \
|
||||
../backend/gb2312.c \
|
||||
../backend/general_field.c \
|
||||
../backend/gif.c \
|
||||
../backend/gridmtx.c \
|
||||
@ -109,7 +108,6 @@ SOURCES += ../backend/2of5.c \
|
||||
../backend/raster.c \
|
||||
../backend/reedsol.c \
|
||||
../backend/rss.c \
|
||||
../backend/sjis.c \
|
||||
../backend/svg.c \
|
||||
../backend/telepen.c \
|
||||
../backend/tif.c \
|
||||
|
@ -32,6 +32,7 @@ HEADERS += ../backend/aztec.h \
|
||||
../backend/font.h \
|
||||
../backend/gb18030.h \
|
||||
../backend/gb2312.h \
|
||||
../backend/gbk.h \
|
||||
../backend/general_field.h \
|
||||
../backend/gridmtx.h \
|
||||
../backend/gs1.h \
|
||||
@ -67,8 +68,6 @@ SOURCES += ../backend/2of5.c \
|
||||
../backend/dotcode.c \
|
||||
../backend/eci.c \
|
||||
../backend/emf.c \
|
||||
../backend/gb18030.c \
|
||||
../backend/gb2312.c \
|
||||
../backend/gridmtx.c \
|
||||
../backend/general_field.c \
|
||||
../backend/gif.c \
|
||||
|
3
backend_tcl/configure
vendored
3
backend_tcl/configure
vendored
@ -5581,8 +5581,6 @@ done
|
||||
../backend/dotcode.c
|
||||
../backend/eci.c
|
||||
../backend/emf.c
|
||||
../backend/gb18030.c
|
||||
../backend/gb2312.c
|
||||
../backend/general_field.c
|
||||
../backend/gif.c
|
||||
../backend/gridmtx.c
|
||||
@ -5605,7 +5603,6 @@ done
|
||||
../backend/raster.c
|
||||
../backend/reedsol.c
|
||||
../backend/rss.c
|
||||
../backend/sjis.c
|
||||
../backend/svg.c
|
||||
../backend/telepen.c
|
||||
../backend/tif.c
|
||||
|
@ -84,8 +84,6 @@ TEA_ADD_SOURCES([
|
||||
../backend/dotcode.c
|
||||
../backend/eci.c
|
||||
../backend/emf.c
|
||||
../backend/gb18030.c
|
||||
../backend/gb2312.c
|
||||
../backend/general_field.c
|
||||
../backend/gif.c
|
||||
../backend/gridmtx.c
|
||||
@ -108,7 +106,6 @@ TEA_ADD_SOURCES([
|
||||
../backend/raster.c
|
||||
../backend/reedsol.c
|
||||
../backend/rss.c
|
||||
../backend/sjis.c
|
||||
../backend/svg.c
|
||||
../backend/telepen.c
|
||||
../backend/tif.c
|
||||
|
@ -157,14 +157,6 @@ SOURCE=..\backend\emf.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\backend\gb18030.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\backend\gb2312.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\backend\general_field.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@ -253,10 +245,6 @@ SOURCE=..\backend\rss.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\backend\sjis.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\backend\svg.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
@ -1911,7 +1911,7 @@ To treat all warnings as errors, set `symbol->warn_level` to `WARN_FAIL_ALL`.
|
||||
|
||||
## 5.8 Specifying a Symbology
|
||||
|
||||
Symbologies can be specified by number or by name as shown in the Table :
|
||||
Symbologies can be specified by number or by name as shown in the Table
|
||||
{@tbl:barcode_types}. For example
|
||||
|
||||
```c
|
||||
@ -2275,18 +2275,16 @@ check digit but not show it in the Human Readable Text, set `--vers=2` (API
|
||||
|
||||
Used for baggage handling in the air-transport industry by the International
|
||||
Air Transport Agency, this self-checking code will encode numeric input (digits
|
||||
0-9) up to a maximum of 45 digits. No check digit is added by default. To add a
|
||||
check digit, set `--vers=1` (API `option_2 = 1`). To add a check digit but not
|
||||
show it in the Human Readable Text, set `--vers=2` (API `option_2 = 2`).
|
||||
0-9) up to a maximum of 45 digits. No check digit is added by default. Check
|
||||
digit options are the same as for [6.1.2.1 Standard Code 2 of 5].
|
||||
|
||||
#### 6.1.2.3 Industrial Code 2 of 5
|
||||
|
||||
![`zint -b C25IND -d "9212320967"`](images/c25ind.svg)
|
||||
|
||||
Industrial Code 2 of 5 can encode numeric input (digits 0-9) up to a maximum of
|
||||
45 digits. No check digit is added by default. To add a check digit, set
|
||||
`--vers=1` (API `option_2 = 1`). To add a check digit but not show it in the
|
||||
Human Readable Text, set `--vers=2` (API `option_2 = 2`).
|
||||
45 digits. No check digit is added by default. Check digit options are the same
|
||||
as for [6.1.2.1 Standard Code 2 of 5].
|
||||
|
||||
#### 6.1.2.4 Interleaved Code 2 of 5 (ISO 16390)
|
||||
|
||||
@ -2295,18 +2293,16 @@ Human Readable Text, set `--vers=2` (API `option_2 = 2`).
|
||||
This self-checking symbology encodes pairs of numbers, and so can only encode
|
||||
an even number of digits (0-9). If an odd number of digits is entered a leading
|
||||
zero is added by Zint. A maximum of 45 pairs (90 digits) can be encoded. No
|
||||
check digit is added by default. To add a check digit, set `--vers=1` (API
|
||||
`option_2 = 1`). To add a check digit but not show it in the Human Readable
|
||||
Text, set `--vers=2` (API `option_2 = 2`).
|
||||
check digit is added by default. Check digit options are the same as for
|
||||
[6.1.2.1 Standard Code 2 of 5].
|
||||
|
||||
#### 6.1.2.5 Code 2 of 5 Data Logic
|
||||
|
||||
![`zint -b C25LOGIC -d "9212320967"`](images/c25logic.svg)
|
||||
|
||||
Data Logic does not include a check digit by default and can encode numeric
|
||||
input (digits 0-9) up to a maximum of 80 digits. To add a check digit, set
|
||||
`--vers=1` (API `option_2 = 1`). To add a check digit but not show it in the
|
||||
Human Readable Text, set `--vers=2` (API `option_2 = 2`).
|
||||
input (digits 0-9) up to a maximum of 80 digits. Check digit options are the
|
||||
same as for [6.1.2.1 Standard Code 2 of 5].
|
||||
|
||||
#### 6.1.2.6 ITF-14
|
||||
|
||||
@ -2454,11 +2450,8 @@ If you are encoding an EAN-8 or EAN-13 symbol and your data already includes
|
||||
the check digit then you can use symbology `BARCODE_EANX_CHK` (14) which takes
|
||||
an 8 or 13-digit input and validates the check digit before encoding.
|
||||
|
||||
You can adjust the gap between the main symbol and an add-on in multiples of
|
||||
the X-dimension by setting `--addongap` (API `option_2`) to a value between 7
|
||||
(default) and 12. The height in X-dimensions that the guard bars descend below
|
||||
the main bars can be adjusted by setting `--guarddescent` (API `guard_descent`)
|
||||
to a value between 0 and 20 (default 5).
|
||||
Options to adjust the add-on gap and the descent height of guard bars are the
|
||||
same as for [6.1.3.2 UPC Version E].
|
||||
|
||||
#### 6.1.4.2 SBN, ISBN and ISBN-13
|
||||
|
||||
@ -2468,10 +2461,8 @@ EAN-13 symbols (also known as Bookland EAN-13) can also be produced from
|
||||
9-digit SBN, 10-digit ISBN or 13-digit ISBN-13 data. The relevant check digit
|
||||
needs to be present in the input data and will be verified before the symbol is
|
||||
generated. In addition EAN-2 and EAN-5 add-on symbols can be added using the +
|
||||
character as with UPC symbols, and the gap set with `--addongap` (API
|
||||
`option_2`) to between 7 (default) and 12. The height that the guard bars
|
||||
descend can be adjusted by setting `--guarddescent` (API `guard_descent`) to a
|
||||
value between 0 and 20 (default 5).
|
||||
character as with UPC symbols, and there are options to adjust the add-on gap
|
||||
and the descent height of guard bars - see [6.1.3.2 UPC Version E].
|
||||
|
||||
### 6.1.5 Plessey
|
||||
|
||||
@ -2848,7 +2839,7 @@ zint --bind --notext --separator=2 -d "This" -d "That"
|
||||
"That"`](images/code128_stacked_sep2.svg)
|
||||
|
||||
A more sophisticated method is to use some type of line indexing which indicates
|
||||
to the barcode reader which order the symbols should be read. This is
|
||||
to the barcode reader which order the symbols should be read in. This is
|
||||
demonstrated by the symbologies below.
|
||||
|
||||
### 6.2.2 Codablock-F
|
||||
@ -4102,7 +4093,7 @@ international standards:
|
||||
Interpretations Part 3: Register (Version 2, February 2022)
|
||||
|
||||
|
||||
# A. Character Encoding
|
||||
# Annex A. Character Encoding
|
||||
|
||||
This section is intended as a quick reference to the character sets used by
|
||||
Zint. All symbologies use standard ASCII input as shown in section A.1, but
|
||||
@ -4164,4 +4155,4 @@ F `¯` `¿` `Ï` `ß` `ï` `ÿ`
|
||||
|
||||
Table: {#tbl:iso_iec_8869_1 tag=": ISO/IEC 8859-1"}
|
||||
|
||||
# B. zint(1) Man Page
|
||||
# Annex B. zint(1) Man Page
|
||||
|
@ -172,10 +172,10 @@ May 2022
|
||||
- 7.3 Version Information
|
||||
- 7.4 Sources of Information
|
||||
- 7.5 Standards Compliance
|
||||
- A. Character Encoding
|
||||
- Annex A. Character Encoding
|
||||
- A.1 ASCII Standard
|
||||
- A.2 Latin Alphabet No. 1 (ISO/IEC 8859-1)
|
||||
- B. zint(1) Man Page
|
||||
- Annex B. zint(1) Man Page
|
||||
- NAME
|
||||
- SYNOPSIS
|
||||
- DESCRIPTION
|
||||
@ -1943,7 +1943,7 @@ To treat all warnings as errors, set symbol->warn_level to WARN_FAIL_ALL.
|
||||
|
||||
5.8 Specifying a Symbology
|
||||
|
||||
Symbologies can be specified by number or by name as shown in the Table :
|
||||
Symbologies can be specified by number or by name as shown in the Table
|
||||
: Barcode Types (Symbologies). For example
|
||||
|
||||
symbol->symbology = BARCODE_LOGMARS;
|
||||
@ -2266,18 +2266,16 @@ option_2 = 2).
|
||||
|
||||
Used for baggage handling in the air-transport industry by the International Air
|
||||
Transport Agency, this self-checking code will encode numeric input (digits 0-9)
|
||||
up to a maximum of 45 digits. No check digit is added by default. To add a check
|
||||
digit, set --vers=1 (API option_2 = 1). To add a check digit but not show it in
|
||||
the Human Readable Text, set --vers=2 (API option_2 = 2).
|
||||
up to a maximum of 45 digits. No check digit is added by default. Check digit
|
||||
options are the same as for 6.1.2.1 Standard Code 2 of 5.
|
||||
|
||||
6.1.2.3 Industrial Code 2 of 5
|
||||
|
||||
[zint -b C25IND -d "9212320967"]
|
||||
|
||||
Industrial Code 2 of 5 can encode numeric input (digits 0-9) up to a maximum of
|
||||
45 digits. No check digit is added by default. To add a check digit, set
|
||||
--vers=1 (API option_2 = 1). To add a check digit but not show it in the Human
|
||||
Readable Text, set --vers=2 (API option_2 = 2).
|
||||
45 digits. No check digit is added by default. Check digit options are the same
|
||||
as for 6.1.2.1 Standard Code 2 of 5.
|
||||
|
||||
6.1.2.4 Interleaved Code 2 of 5 (ISO 16390)
|
||||
|
||||
@ -2286,18 +2284,16 @@ Readable Text, set --vers=2 (API option_2 = 2).
|
||||
This self-checking symbology encodes pairs of numbers, and so can only encode an
|
||||
even number of digits (0-9). If an odd number of digits is entered a leading
|
||||
zero is added by Zint. A maximum of 45 pairs (90 digits) can be encoded. No
|
||||
check digit is added by default. To add a check digit, set --vers=1 (API
|
||||
option_2 = 1). To add a check digit but not show it in the Human Readable Text,
|
||||
set --vers=2 (API option_2 = 2).
|
||||
check digit is added by default. Check digit options are the same as for 6.1.2.1
|
||||
Standard Code 2 of 5.
|
||||
|
||||
6.1.2.5 Code 2 of 5 Data Logic
|
||||
|
||||
[zint -b C25LOGIC -d "9212320967"]
|
||||
|
||||
Data Logic does not include a check digit by default and can encode numeric
|
||||
input (digits 0-9) up to a maximum of 80 digits. To add a check digit, set
|
||||
--vers=1 (API option_2 = 1). To add a check digit but not show it in the Human
|
||||
Readable Text, set --vers=2 (API option_2 = 2).
|
||||
input (digits 0-9) up to a maximum of 80 digits. Check digit options are the
|
||||
same as for 6.1.2.1 Standard Code 2 of 5.
|
||||
|
||||
6.1.2.6 ITF-14
|
||||
|
||||
@ -2429,11 +2425,8 @@ If you are encoding an EAN-8 or EAN-13 symbol and your data already includes the
|
||||
check digit then you can use symbology BARCODE_EANX_CHK (14) which takes an 8 or
|
||||
13-digit input and validates the check digit before encoding.
|
||||
|
||||
You can adjust the gap between the main symbol and an add-on in multiples of the
|
||||
X-dimension by setting --addongap (API option_2) to a value between 7 (default)
|
||||
and 12. The height in X-dimensions that the guard bars descend below the main
|
||||
bars can be adjusted by setting --guarddescent (API guard_descent) to a value
|
||||
between 0 and 20 (default 5).
|
||||
Options to adjust the add-on gap and the descent height of guard bars are the
|
||||
same as for 6.1.3.2 UPC Version E.
|
||||
|
||||
6.1.4.2 SBN, ISBN and ISBN-13
|
||||
|
||||
@ -2443,10 +2436,8 @@ EAN-13 symbols (also known as Bookland EAN-13) can also be produced from 9-digit
|
||||
SBN, 10-digit ISBN or 13-digit ISBN-13 data. The relevant check digit needs to
|
||||
be present in the input data and will be verified before the symbol is
|
||||
generated. In addition EAN-2 and EAN-5 add-on symbols can be added using the +
|
||||
character as with UPC symbols, and the gap set with --addongap (API option_2) to
|
||||
between 7 (default) and 12. The height that the guard bars descend can be
|
||||
adjusted by setting --guarddescent (API guard_descent) to a value between 0 and
|
||||
20 (default 5).
|
||||
character as with UPC symbols, and there are options to adjust the add-on gap
|
||||
and the descent height of guard bars - see 6.1.3.2 UPC Version E.
|
||||
|
||||
6.1.5 Plessey
|
||||
|
||||
@ -2799,7 +2790,7 @@ set by --separator (API option_3):
|
||||
[zint --notext --bind --separator=2 -d "This" -d "That"]
|
||||
|
||||
A more sophisticated method is to use some type of line indexing which indicates
|
||||
to the barcode reader which order the symbols should be read. This is
|
||||
to the barcode reader which order the symbols should be read in. This is
|
||||
demonstrated by the symbologies below.
|
||||
|
||||
6.2.2 Codablock-F
|
||||
@ -3996,7 +3987,7 @@ international standards:
|
||||
- AIM ITS/04-023 International Technical Standard - Extended Channel
|
||||
Interpretations Part 3: Register (Version 2, February 2022)
|
||||
|
||||
A. Character Encoding
|
||||
Annex A. Character Encoding
|
||||
|
||||
This section is intended as a quick reference to the character sets used by
|
||||
Zint. All symbologies use standard ASCII input as shown in section A.1, but some
|
||||
@ -4058,7 +4049,7 @@ defined.
|
||||
|
||||
: Table : ISO/IEC 8859-1:
|
||||
|
||||
B. zint(1) Man Page
|
||||
Annex B. zint(1) Man Page
|
||||
|
||||
% zint(1) Version 2.11.0.9 % % May 2022
|
||||
|
||||
|
@ -842,7 +842,10 @@ static int batch_process(struct zint_symbol *symbol, const char *filename, const
|
||||
fprintf(stderr, "On line %d: Error 103: Input data too long\n", line_count);
|
||||
fflush(stderr);
|
||||
do {
|
||||
character = fgetc(file);
|
||||
if ((intChar = fgetc(file)) == EOF) {
|
||||
break;
|
||||
}
|
||||
character = (unsigned char) intChar;
|
||||
} while ((!feof(file)) && (character != '\n'));
|
||||
}
|
||||
} while ((!feof(file)) && (line_count < 2000000000));
|
||||
|
@ -112,18 +112,22 @@ static char *exec(const char *cmd, char *buf, int buf_size, int debug, int index
|
||||
fprintf(stderr, "exec: failed to read full stream (%s)\n", cmd);
|
||||
exit_status = testutil_pclose(fp);
|
||||
if (p_exit_status) {
|
||||
#ifndef _WIN32
|
||||
if (WIFEXITED(exit_status)) {
|
||||
exit_status = WEXITSTATUS(exit_status);
|
||||
}
|
||||
#endif
|
||||
*p_exit_status = exit_status;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
exit_status = testutil_pclose(fp);
|
||||
if (p_exit_status) {
|
||||
#ifndef _WIN32
|
||||
if (WIFEXITED(exit_status)) {
|
||||
exit_status = WEXITSTATUS(exit_status);
|
||||
}
|
||||
#endif
|
||||
*p_exit_status = exit_status;
|
||||
}
|
||||
|
||||
|
@ -1227,16 +1227,19 @@ void MainWindow::change_options()
|
||||
connect(get_widget(QSL("radC39Stand")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
connect(get_widget(QSL("radC39Check")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
connect(get_widget(QSL("radC39HIBC")), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
QRadioButton *radC39HIBC = m_optionWidget->findChild<QRadioButton*>(QSL("radC39HIBC"));
|
||||
if (symbology == BARCODE_EXCODE39) {
|
||||
tabMain->insertTab(1, m_optionWidget, tr("Cod&e 39 Extended"));
|
||||
if (m_optionWidget->findChild<QRadioButton*>(QSL("radC39HIBC"))->isChecked()) {
|
||||
m_optionWidget->findChild<QRadioButton*>(QSL("radC39HIBC"))->setChecked(false);
|
||||
if (radC39HIBC->isChecked()) {
|
||||
radC39HIBC->setChecked(false);
|
||||
m_optionWidget->findChild<QRadioButton*>(QSL("radC39Stand"))->setChecked(true);
|
||||
}
|
||||
m_optionWidget->findChild<QRadioButton*>(QSL("radC39HIBC"))->setEnabled(false);
|
||||
radC39HIBC->setEnabled(false);
|
||||
radC39HIBC->hide();
|
||||
} else {
|
||||
tabMain->insertTab(1, m_optionWidget, tr("Cod&e 39"));
|
||||
m_optionWidget->findChild<QRadioButton*>(QSL("radC39HIBC"))->setEnabled(true);
|
||||
radC39HIBC->setEnabled(true);
|
||||
radC39HIBC->show();
|
||||
}
|
||||
|
||||
} else if (symbology == BARCODE_LOGMARS) {
|
||||
|
@ -140,8 +140,6 @@
|
||||
<ClCompile Include="..\backend\dotcode.c" />
|
||||
<ClCompile Include="..\backend\eci.c" />
|
||||
<ClCompile Include="..\backend\emf.c" />
|
||||
<ClCompile Include="..\backend\gb18030.c" />
|
||||
<ClCompile Include="..\backend\gb2312.c" />
|
||||
<ClCompile Include="..\backend\general_field.c" />
|
||||
<ClCompile Include="..\backend\gif.c" />
|
||||
<ClCompile Include="..\backend\gridmtx.c" />
|
||||
@ -164,7 +162,6 @@
|
||||
<ClCompile Include="..\backend\raster.c" />
|
||||
<ClCompile Include="..\backend\reedsol.c" />
|
||||
<ClCompile Include="..\backend\rss.c" />
|
||||
<ClCompile Include="..\backend\sjis.c" />
|
||||
<ClCompile Include="..\backend\svg.c" />
|
||||
<ClCompile Include="..\backend\telepen.c" />
|
||||
<ClCompile Include="..\backend\tif.c" />
|
||||
@ -190,6 +187,7 @@
|
||||
<ClInclude Include="..\backend\font.h" />
|
||||
<ClInclude Include="..\backend\gb18030.h" />
|
||||
<ClInclude Include="..\backend\gb2312.h" />
|
||||
<ClInclude Include="..\backend\gbk.h" />
|
||||
<ClInclude Include="..\backend\general_field.h" />
|
||||
<ClInclude Include="..\backend\gridmtx.h" />
|
||||
<ClInclude Include="..\backend\gs1.h" />
|
||||
|
@ -339,14 +339,6 @@
|
||||
RelativePath="..\backend\emf.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\backend\gb18030.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\backend\gb2312.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\backend\general_field.c"
|
||||
>
|
||||
@ -435,10 +427,6 @@
|
||||
RelativePath="..\backend\rss.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\backend\sjis.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\backend\svg.c"
|
||||
>
|
||||
@ -537,6 +525,10 @@
|
||||
RelativePath="..\backend\gb2312.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\backend\gbk.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\backend\general_field.h"
|
||||
>
|
||||
|
@ -321,8 +321,6 @@
|
||||
<ClCompile Include="..\..\backend\dotcode.c" />
|
||||
<ClCompile Include="..\..\backend\eci.c" />
|
||||
<ClCompile Include="..\..\backend\emf.c" />
|
||||
<ClCompile Include="..\..\backend\gb18030.c" />
|
||||
<ClCompile Include="..\..\backend\gb2312.c" />
|
||||
<ClCompile Include="..\..\backend\general_field.c" />
|
||||
<ClCompile Include="..\..\backend\gif.c" />
|
||||
<ClCompile Include="..\..\backend\gridmtx.c" />
|
||||
@ -345,7 +343,6 @@
|
||||
<ClCompile Include="..\..\backend\raster.c" />
|
||||
<ClCompile Include="..\..\backend\reedsol.c" />
|
||||
<ClCompile Include="..\..\backend\rss.c" />
|
||||
<ClCompile Include="..\..\backend\sjis.c" />
|
||||
<ClCompile Include="..\..\backend\svg.c" />
|
||||
<ClCompile Include="..\..\backend\telepen.c" />
|
||||
<ClCompile Include="..\..\backend\tif.c" />
|
||||
@ -371,6 +368,7 @@
|
||||
<ClInclude Include="..\..\backend\font.h" />
|
||||
<ClInclude Include="..\..\backend\gb18030.h" />
|
||||
<ClInclude Include="..\..\backend\gb2312.h" />
|
||||
<ClInclude Include="..\..\backend\gbk.h" />
|
||||
<ClInclude Include="..\..\backend\general_field.h" />
|
||||
<ClInclude Include="..\..\backend\gridmtx.h" />
|
||||
<ClInclude Include="..\..\backend\gs1.h" />
|
||||
|
@ -87,8 +87,6 @@
|
||||
<ClCompile Include="..\..\backend\dotcode.c" />
|
||||
<ClCompile Include="..\..\backend\eci.c" />
|
||||
<ClCompile Include="..\..\backend\emf.c" />
|
||||
<ClCompile Include="..\..\backend\gb18030.c" />
|
||||
<ClCompile Include="..\..\backend\gb2312.c" />
|
||||
<ClCompile Include="..\..\backend\general_field.c" />
|
||||
<ClCompile Include="..\..\backend\gif.c" />
|
||||
<ClCompile Include="..\..\backend\gridmtx.c" />
|
||||
@ -111,7 +109,6 @@
|
||||
<ClCompile Include="..\..\backend\raster.c" />
|
||||
<ClCompile Include="..\..\backend\reedsol.c" />
|
||||
<ClCompile Include="..\..\backend\rss.c" />
|
||||
<ClCompile Include="..\..\backend\sjis.c" />
|
||||
<ClCompile Include="..\..\backend\svg.c" />
|
||||
<ClCompile Include="..\..\backend\telepen.c" />
|
||||
<ClCompile Include="..\..\backend\tif.c" />
|
||||
@ -137,6 +134,7 @@
|
||||
<ClInclude Include="..\..\backend\font.h" />
|
||||
<ClInclude Include="..\..\backend\gb18030.h" />
|
||||
<ClInclude Include="..\..\backend\gb2312.h" />
|
||||
<ClInclude Include="..\..\backend\gbk.h" />
|
||||
<ClInclude Include="..\..\backend\general_field.h" />
|
||||
<ClInclude Include="..\..\backend\gridmtx.h" />
|
||||
<ClInclude Include="..\..\backend\gs1.h" />
|
||||
|
@ -140,8 +140,6 @@
|
||||
<ClCompile Include="..\..\backend\dotcode.c" />
|
||||
<ClCompile Include="..\..\backend\eci.c" />
|
||||
<ClCompile Include="..\..\backend\emf.c" />
|
||||
<ClCompile Include="..\..\backend\gb18030.c" />
|
||||
<ClCompile Include="..\..\backend\gb2312.c" />
|
||||
<ClCompile Include="..\..\backend\general_field.c" />
|
||||
<ClCompile Include="..\..\backend\gif.c" />
|
||||
<ClCompile Include="..\..\backend\gridmtx.c" />
|
||||
@ -164,7 +162,6 @@
|
||||
<ClCompile Include="..\..\backend\raster.c" />
|
||||
<ClCompile Include="..\..\backend\reedsol.c" />
|
||||
<ClCompile Include="..\..\backend\rss.c" />
|
||||
<ClCompile Include="..\..\backend\sjis.c" />
|
||||
<ClCompile Include="..\..\backend\svg.c" />
|
||||
<ClCompile Include="..\..\backend\telepen.c" />
|
||||
<ClCompile Include="..\..\backend\tif.c" />
|
||||
@ -190,6 +187,7 @@
|
||||
<ClInclude Include="..\..\backend\font.h" />
|
||||
<ClInclude Include="..\..\backend\gb18030.h" />
|
||||
<ClInclude Include="..\..\backend\gb2312.h" />
|
||||
<ClInclude Include="..\..\backend\gbk.h" />
|
||||
<ClInclude Include="..\..\backend\general_field.h" />
|
||||
<ClInclude Include="..\..\backend\gridmtx.h" />
|
||||
<ClInclude Include="..\..\backend\gs1.h" />
|
||||
|
@ -152,14 +152,6 @@ SOURCE=..\..\backend\emf.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\backend\gb18030.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\backend\gb2312.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\backend\general_field.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@ -260,10 +252,6 @@ SOURCE=..\..\backend\rss.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\backend\sjis.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\backend\svg.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
Loading…
Reference in New Issue
Block a user