Bug#28600 Yen sign and overline ujis conversion change

Problem: Unicode->UJIS followed incorrect conversion
rules for U+00A5 YEN SIGN and U+203E OVERLINE,
so these characters were converted to ujis 0x8E5C
and 0x8E7E accordingly.

This behaviour would be correct for a JIS-X-0201 based character set,
but this is wrong for UJIS, which is documented as x-eucjp-unicode-0.9,
and which is based on ASCII for the range U+0000..U+007F.

Fix:
removing JIS-X-0201 conversion rules, making UJIS ASCII compatible.
YEN SIGN and OVERLINE do not have corresponding UJIS characters anymore
and converted to 0x3F QUESTION MARK, throwing a warning in appropriative cases.

This patch also includes a test covering full UJIS->Unicode->UJIS mapping.
parent 8b1deb28
This source diff could not be displayed because it is too large. You can view the blob instead.
-- source include/have_ujis.inc
-- source include/have_ucs2.inc
--disable_warnings
drop table if exists t1, t2;
--enable_warnings
#
# Tests for UJIS-to-Unicode and Unicode-to-UJIS mapping
#
# MySQL's "ujis" is x-eucjp-unicode-0.9.
#
#
# A helper table, with codes 0xA1..0xFE
#
create table t2 (code binary(1));
insert into t2 values (0xA1),(0xA2),(0xA3),(0xA4),(0xA5),(0xA6),(0xA7);
insert into t2 values (0xA8),(0xA9),(0xAA),(0xAB),(0xAC),(0xAD),(0xAE),(0xAF);
insert into t2 values (0xB0),(0xB1),(0xB2),(0xB3),(0xB4),(0xB5),(0xB6),(0xB7);
insert into t2 values (0xB8),(0xB9),(0xBA),(0xBB),(0xBC),(0xBD),(0xBE),(0xBF);
insert into t2 values (0xC0),(0xC1),(0xC2),(0xC3),(0xC4),(0xC5),(0xC6),(0xC7);
insert into t2 values (0xC8),(0xC9),(0xCA),(0xCB),(0xCC),(0xCD),(0xCE),(0xCF);
insert into t2 values (0xD0),(0xD1),(0xD2),(0xD3),(0xD4),(0xD5),(0xD6),(0xD7);
insert into t2 values (0xD8),(0xD9),(0xDA),(0xDB),(0xDC),(0xDD),(0xDE),(0xDF);
insert into t2 values (0xE0),(0xE1),(0xE2),(0xE3),(0xE4),(0xE5),(0xE6),(0xE7);
insert into t2 values (0xE8),(0xE9),(0xEA),(0xEB),(0xEC),(0xED),(0xEE),(0xEF);
insert into t2 values (0xF0),(0xF1),(0xF2),(0xF3),(0xF4),(0xF5),(0xF6),(0xF7);
insert into t2 values (0xF8),(0xF9),(0xFA),(0xFB),(0xFC),(0xFD),(0xFE);
create table t1
(
ujis varchar(1) character set ujis collate ujis_bin primary key,
ucs2 varchar(1) character set ucs2 not null default '',
ujis2 varchar(1) character set ujis not null default '',
name varchar(64) character set ujis not null default ''
);
#
# A character from the ASCII (code set 0)
# is represented by one byte, in the range 0x00 - 0x7E.
#
insert into t1 set ujis=0x00, name='U+0000 NULL';
insert into t1 set ujis=0x01, name='U+0001 START OF HEADING';
insert into t1 set ujis=0x02, name='U+0002 START OF TEXT';
insert into t1 set ujis=0x03, name='U+0003 END OF TEXT';
insert into t1 set ujis=0x04, name='U+0004 END OF TRANSMISSION';
insert into t1 set ujis=0x05, name='U+0005 ENQUIRY';
insert into t1 set ujis=0x06, name='U+0006 ACKNOWLEDGE';
insert into t1 set ujis=0x07, name='U+0007 BELL';
insert into t1 set ujis=0x08, name='U+0008 BACKSPACE';
insert into t1 set ujis=0x09, name='U+0009 HORIZONTAL TABULATION';
insert into t1 set ujis=0x0A, name='U+000A LINE FEED';
insert into t1 set ujis=0x0B, name='U+000B VERTICAL TABULATION';
insert into t1 set ujis=0x0C, name='U+000C FORM FEED';
insert into t1 set ujis=0x0D, name='U+000D CARRIAGE RETURN';
insert into t1 set ujis=0x0E, name='U+000E SHIFT OUT';
insert into t1 set ujis=0x0F, name='U+000F SHIFT IN';
insert into t1 set ujis=0x10, name='U+0010 DATA LINK ESCAPE';
insert into t1 set ujis=0x11, name='U+0011 DEVICE CONTROL ONE';
insert into t1 set ujis=0x12, name='U+0012 DEVICE CONTROL TWO';
insert into t1 set ujis=0x13, name='U+0013 DEVICE CONTROL THREE';
insert into t1 set ujis=0x14, name='U+0014 DEVICE CONTROL FOUR';
insert into t1 set ujis=0x15, name='U+0015 NEGATIVE ACKNOWLEDGE';
insert into t1 set ujis=0x16, name='U+0016 SYNCHRONOUS IDLE';
insert into t1 set ujis=0x17, name='U+0017 END OF TRANSMISSION BLOCK';
insert into t1 set ujis=0x18, name='U+0018 CANCEL';
insert into t1 set ujis=0x19, name='U+0019 END OF MEDIUM';
insert into t1 set ujis=0x1A, name='U+001A SUBSTITUTE';
insert into t1 set ujis=0x1B, name='U+001B ESCAPE';
insert into t1 set ujis=0x1C, name='U+001C FILE SEPARATOR';
insert into t1 set ujis=0x1D, name='U+001D GROUP SEPARATOR';
insert into t1 set ujis=0x1E, name='U+001E RECORD SEPARATOR';
insert into t1 set ujis=0x1F, name='U+001F UNIT SEPARATOR';
insert into t1 set ujis=0x20, name='U+0020 SPACE';
insert into t1 set ujis=0x21, name='U+0021 EXCLAMATION MARK';
insert into t1 set ujis=0x22, name='U+0022 QUOTATION MARK';
insert into t1 set ujis=0x23, name='U+0023 NUMBER SIGN';
insert into t1 set ujis=0x24, name='U+0024 DOLLAR SIGN';
insert into t1 set ujis=0x25, name='U+0025 PERCENT SIGN';
insert into t1 set ujis=0x26, name='U+0026 AMPERSAND';
insert into t1 set ujis=0x27, name='U+0027 APOSTROPHE';
insert into t1 set ujis=0x28, name='U+0028 LEFT PARENTHESIS';
insert into t1 set ujis=0x29, name='U+0029 RIGHT PARENTHESIS';
insert into t1 set ujis=0x2A, name='U+002A ASTERISK';
insert into t1 set ujis=0x2B, name='U+002B PLUS SIGN';
insert into t1 set ujis=0x2C, name='U+002C COMMA';
insert into t1 set ujis=0x2D, name='U+002D HYPHEN-MINUS';
insert into t1 set ujis=0x2E, name='U+002E FULL STOP';
insert into t1 set ujis=0x2F, name='U+002F SOLIDUS';
insert into t1 set ujis=0x30, name='U+0030 DIGIT ZERO';
insert into t1 set ujis=0x31, name='U+0031 DIGIT ONE';
insert into t1 set ujis=0x32, name='U+0032 DIGIT TWO';
insert into t1 set ujis=0x33, name='U+0033 DIGIT THREE';
insert into t1 set ujis=0x34, name='U+0034 DIGIT FOUR';
insert into t1 set ujis=0x35, name='U+0035 DIGIT FIVE';
insert into t1 set ujis=0x36, name='U+0036 DIGIT SIX';
insert into t1 set ujis=0x37, name='U+0037 DIGIT SEVEN';
insert into t1 set ujis=0x38, name='U+0038 DIGIT EIGHT';
insert into t1 set ujis=0x39, name='U+0039 DIGIT NINE';
insert into t1 set ujis=0x3A, name='U+003A COLON';
insert into t1 set ujis=0x3B, name='U+003B SEMICOLON';
insert into t1 set ujis=0x3C, name='U+003C LESS-THAN SIGN';
insert into t1 set ujis=0x3D, name='U+003D EQUALS SIGN';
insert into t1 set ujis=0x3E, name='U+003E GREATER-THAN SIGN';
insert into t1 set ujis=0x3F, name='U+003F QUESTION MARK';
insert into t1 set ujis=0x40, name='U+0040 COMMERCIAL AT';
insert into t1 set ujis=0x41, name='U+0041 LATIN CAPITAL LETTER A';
insert into t1 set ujis=0x42, name='U+0042 LATIN CAPITAL LETTER B';
insert into t1 set ujis=0x43, name='U+0043 LATIN CAPITAL LETTER C';
insert into t1 set ujis=0x44, name='U+0044 LATIN CAPITAL LETTER D';
insert into t1 set ujis=0x45, name='U+0045 LATIN CAPITAL LETTER E';
insert into t1 set ujis=0x46, name='U+0046 LATIN CAPITAL LETTER F';
insert into t1 set ujis=0x47, name='U+0047 LATIN CAPITAL LETTER G';
insert into t1 set ujis=0x48, name='U+0048 LATIN CAPITAL LETTER H';
insert into t1 set ujis=0x49, name='U+0049 LATIN CAPITAL LETTER I';
insert into t1 set ujis=0x4A, name='U+004A LATIN CAPITAL LETTER J';
insert into t1 set ujis=0x4B, name='U+004B LATIN CAPITAL LETTER K';
insert into t1 set ujis=0x4C, name='U+004C LATIN CAPITAL LETTER L';
insert into t1 set ujis=0x4D, name='U+004D LATIN CAPITAL LETTER M';
insert into t1 set ujis=0x4E, name='U+004E LATIN CAPITAL LETTER N';
insert into t1 set ujis=0x4F, name='U+004F LATIN CAPITAL LETTER O';
insert into t1 set ujis=0x50, name='U+0050 LATIN CAPITAL LETTER P';
insert into t1 set ujis=0x51, name='U+0051 LATIN CAPITAL LETTER Q';
insert into t1 set ujis=0x52, name='U+0052 LATIN CAPITAL LETTER R';
insert into t1 set ujis=0x53, name='U+0053 LATIN CAPITAL LETTER S';
insert into t1 set ujis=0x54, name='U+0054 LATIN CAPITAL LETTER T';
insert into t1 set ujis=0x55, name='U+0055 LATIN CAPITAL LETTER U';
insert into t1 set ujis=0x56, name='U+0056 LATIN CAPITAL LETTER V';
insert into t1 set ujis=0x57, name='U+0057 LATIN CAPITAL LETTER W';
insert into t1 set ujis=0x58, name='U+0058 LATIN CAPITAL LETTER X';
insert into t1 set ujis=0x59, name='U+0059 LATIN CAPITAL LETTER Y';
insert into t1 set ujis=0x5A, name='U+005A LATIN CAPITAL LETTER Z';
insert into t1 set ujis=0x5B, name='U+005B LEFT SQUARE BRACKET';
insert into t1 set ujis=0x5C, name='U+005C REVERSE SOLIDUS';
insert into t1 set ujis=0x5D, name='U+005D RIGHT SQUARE BRACKET';
insert into t1 set ujis=0x5E, name='U+005E CIRCUMFLEX ACCENT';
insert into t1 set ujis=0x5F, name='U+005F LOW LINE';
insert into t1 set ujis=0x60, name='U+0060 GRAVE ACCENT';
insert into t1 set ujis=0x61, name='U+0061 LATIN SMALL LETTER A';
insert into t1 set ujis=0x62, name='U+0062 LATIN SMALL LETTER B';
insert into t1 set ujis=0x63, name='U+0063 LATIN SMALL LETTER C';
insert into t1 set ujis=0x64, name='U+0064 LATIN SMALL LETTER D';
insert into t1 set ujis=0x65, name='U+0065 LATIN SMALL LETTER E';
insert into t1 set ujis=0x66, name='U+0066 LATIN SMALL LETTER F';
insert into t1 set ujis=0x67, name='U+0067 LATIN SMALL LETTER G';
insert into t1 set ujis=0x68, name='U+0068 LATIN SMALL LETTER H';
insert into t1 set ujis=0x69, name='U+0069 LATIN SMALL LETTER I';
insert into t1 set ujis=0x6A, name='U+006A LATIN SMALL LETTER J';
insert into t1 set ujis=0x6B, name='U+006B LATIN SMALL LETTER K';
insert into t1 set ujis=0x6C, name='U+006C LATIN SMALL LETTER L';
insert into t1 set ujis=0x6D, name='U+006D LATIN SMALL LETTER M';
insert into t1 set ujis=0x6E, name='U+006E LATIN SMALL LETTER N';
insert into t1 set ujis=0x6F, name='U+006F LATIN SMALL LETTER O';
insert into t1 set ujis=0x70, name='U+0070 LATIN SMALL LETTER P';
insert into t1 set ujis=0x71, name='U+0071 LATIN SMALL LETTER Q';
insert into t1 set ujis=0x72, name='U+0072 LATIN SMALL LETTER R';
insert into t1 set ujis=0x73, name='U+0073 LATIN SMALL LETTER S';
insert into t1 set ujis=0x74, name='U+0074 LATIN SMALL LETTER T';
insert into t1 set ujis=0x75, name='U+0075 LATIN SMALL LETTER U';
insert into t1 set ujis=0x76, name='U+0076 LATIN SMALL LETTER V';
insert into t1 set ujis=0x77, name='U+0077 LATIN SMALL LETTER W';
insert into t1 set ujis=0x78, name='U+0078 LATIN SMALL LETTER X';
insert into t1 set ujis=0x79, name='U+0079 LATIN SMALL LETTER Y';
insert into t1 set ujis=0x7A, name='U+007A LATIN SMALL LETTER Z';
insert into t1 set ujis=0x7B, name='U+007B LEFT CURLY BRACKET';
insert into t1 set ujis=0x7C, name='U+007C VERTICAL LINE';
insert into t1 set ujis=0x7D, name='U+007D RIGHT CURLY BRACKET';
insert into t1 set ujis=0x7E, name='U+007E TILDE';
insert into t1 set ujis=0x7F, name='U+007F DELETE';
#
# A character from JIS-X-0208 (code set 1)
# is represented by two bytes,
# both in the range 0xA1 - 0xFE.
# Codes according to:
# ftp://ftp.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/JIS0208.TXT
#
# Fill table t1 with codes "[A1..FE][A1..FE]" using helper table t2.
# 8836 codes total:
#
insert into t1 (ujis) select concat(t21.code,t22.code) from t2 t21, t2 t22 order by 1;
update t1 set name='U+3000 IDEOGRAPHIC SPACE' where ujis=0xA1A1;
update t1 set name='U+3001 IDEOGRAPHIC COMMA' where ujis=0xA1A2;
update t1 set name='U+3002 IDEOGRAPHIC FULL STOP' where ujis=0xA1A3;
update t1 set name='U+FF0C FULLWIDTH COMMA' where ujis=0xA1A4;
update t1 set name='U+FF0E FULLWIDTH FULL STOP' where ujis=0xA1A5;
update t1 set name='U+30FB KATAKANA MIDDLE DOT' where ujis=0xA1A6;
update t1 set name='U+FF1A FULLWIDTH COLON' where ujis=0xA1A7;
update t1 set name='U+FF1B FULLWIDTH SEMICOLON' where ujis=0xA1A8;
update t1 set name='U+FF1F FULLWIDTH QUESTION MARK' where ujis=0xA1A9;
update t1 set name='U+FF01 FULLWIDTH EXCLAMATION MARK' where ujis=0xA1AA;
update t1 set name='U+309B KATAKANA-HIRAGANA VOICED SOUND MARK' where ujis=0xA1AB;
update t1 set name='U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK' where ujis=0xA1AC;
update t1 set name='U+00B4 ACUTE ACCENT' where ujis=0xA1AD;
update t1 set name='U+FF40 FULLWIDTH GRAVE ACCENT' where ujis=0xA1AE;
update t1 set name='U+00A8 DIAERESIS' where ujis=0xA1AF;
update t1 set name='U+FF3E FULLWIDTH CIRCUMFLEX ACCENT' where ujis=0xA1B0;
update t1 set name='U+FFE3 FULLWIDTH MACRON' where ujis=0xA1B1;
update t1 set name='U+FF3F FULLWIDTH LOW LINE' where ujis=0xA1B2;
update t1 set name='U+30FD KATAKANA ITERATION MARK' where ujis=0xA1B3;
update t1 set name='U+30FE KATAKANA VOICED ITERATION MARK' where ujis=0xA1B4;
update t1 set name='U+309D HIRAGANA ITERATION MARK' where ujis=0xA1B5;
update t1 set name='U+309E HIRAGANA VOICED ITERATION MARK' where ujis=0xA1B6;
update t1 set name='U+3003 DITTO MARK' where ujis=0xA1B7;
update t1 set name='U+4EDD <CJK>' where ujis=0xA1B8;
update t1 set name='U+3005 IDEOGRAPHIC ITERATION MARK' where ujis=0xA1B9;
update t1 set name='U+3006 IDEOGRAPHIC CLOSING MARK' where ujis=0xA1BA;
update t1 set name='U+3007 IDEOGRAPHIC NUMBER ZERO' where ujis=0xA1BB;
update t1 set name='U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK' where ujis=0xA1BC;
update t1 set name='U+2015 HORIZONTAL BAR' where ujis=0xA1BD;
update t1 set name='U+2010 HYPHEN' where ujis=0xA1BE;
update t1 set name='U+FF0F FULLWIDTH SOLIDUS' where ujis=0xA1BF;
update t1 set name='U+005C REVERSE SOLIDUS' where ujis=0xA1C0;
update t1 set name='U+301C WAVE DASH' where ujis=0xA1C1;
update t1 set name='U+2016 DOUBLE VERTICAL LINE' where ujis=0xA1C2;
update t1 set name='U+FF5C FULLWIDTH VERTICAL LINE' where ujis=0xA1C3;
update t1 set name='U+2026 HORIZONTAL ELLIPSIS' where ujis=0xA1C4;
update t1 set name='U+2025 TWO DOT LEADER' where ujis=0xA1C5;
update t1 set name='U+2018 LEFT SINGLE QUOTATION MARK' where ujis=0xA1C6;
update t1 set name='U+2019 RIGHT SINGLE QUOTATION MARK' where ujis=0xA1C7;
update t1 set name='U+201C LEFT DOUBLE QUOTATION MARK' where ujis=0xA1C8;
update t1 set name='U+201D RIGHT DOUBLE QUOTATION MARK' where ujis=0xA1C9;
update t1 set name='U+FF08 FULLWIDTH LEFT PARENTHESIS' where ujis=0xA1CA;
update t1 set name='U+FF09 FULLWIDTH RIGHT PARENTHESIS' where ujis=0xA1CB;
update t1 set name='U+3014 LEFT TORTOISE SHELL BRACKET' where ujis=0xA1CC;
update t1 set name='U+3015 RIGHT TORTOISE SHELL BRACKET' where ujis=0xA1CD;
update t1 set name='U+FF3B FULLWIDTH LEFT SQUARE BRACKET' where ujis=0xA1CE;
update t1 set name='U+FF3D FULLWIDTH RIGHT SQUARE BRACKET' where ujis=0xA1CF;
update t1 set name='U+FF5B FULLWIDTH LEFT CURLY BRACKET' where ujis=0xA1D0;
update t1 set name='U+FF5D FULLWIDTH RIGHT CURLY BRACKET' where ujis=0xA1D1;
update t1 set name='U+3008 LEFT ANGLE BRACKET' where ujis=0xA1D2;
update t1 set name='U+3009 RIGHT ANGLE BRACKET' where ujis=0xA1D3;
update t1 set name='U+300A LEFT DOUBLE ANGLE BRACKET' where ujis=0xA1D4;
update t1 set name='U+300B RIGHT DOUBLE ANGLE BRACKET' where ujis=0xA1D5;
update t1 set name='U+300C LEFT CORNER BRACKET' where ujis=0xA1D6;
update t1 set name='U+300D RIGHT CORNER BRACKET' where ujis=0xA1D7;
update t1 set name='U+300E LEFT WHITE CORNER BRACKET' where ujis=0xA1D8;
update t1 set name='U+300F RIGHT WHITE CORNER BRACKET' where ujis=0xA1D9;
update t1 set name='U+3010 LEFT BLACK LENTICULAR BRACKET' where ujis=0xA1DA;
update t1 set name='U+3011 RIGHT BLACK LENTICULAR BRACKET' where ujis=0xA1DB;
update t1 set name='U+FF0B FULLWIDTH PLUS SIGN' where ujis=0xA1DC;
update t1 set name='U+2212 MINUS SIGN' where ujis=0xA1DD;
update t1 set name='U+00B1 PLUS-MINUS SIGN' where ujis=0xA1DE;
update t1 set name='U+00D7 MULTIPLICATION SIGN' where ujis=0xA1DF;
update t1 set name='U+00F7 DIVISION SIGN' where ujis=0xA1E0;
update t1 set name='U+FF1D FULLWIDTH EQUALS SIGN' where ujis=0xA1E1;
update t1 set name='U+2260 NOT EQUAL TO' where ujis=0xA1E2;
update t1 set name='U+FF1C FULLWIDTH LESS-THAN SIGN' where ujis=0xA1E3;
update t1 set name='U+FF1E FULLWIDTH GREATER-THAN SIGN' where ujis=0xA1E4;
update t1 set name='U+2266 LESS-THAN OVER EQUAL TO' where ujis=0xA1E5;
update t1 set name='U+2267 GREATER-THAN OVER EQUAL TO' where ujis=0xA1E6;
update t1 set name='U+221E INFINITY' where ujis=0xA1E7;
update t1 set name='U+2234 THEREFORE' where ujis=0xA1E8;
update t1 set name='U+2642 MALE SIGN' where ujis=0xA1E9;
update t1 set name='U+2640 FEMALE SIGN' where ujis=0xA1EA;
update t1 set name='U+00B0 DEGREE SIGN' where ujis=0xA1EB;
update t1 set name='U+2032 PRIME' where ujis=0xA1EC;
update t1 set name='U+2033 DOUBLE PRIME' where ujis=0xA1ED;
update t1 set name='U+2103 DEGREE CELSIUS' where ujis=0xA1EE;
update t1 set name='U+FFE5 FULLWIDTH YEN SIGN' where ujis=0xA1EF;
update t1 set name='U+FF04 FULLWIDTH DOLLAR SIGN' where ujis=0xA1F0;
update t1 set name='U+00A2 CENT SIGN' where ujis=0xA1F1;
update t1 set name='U+00A3 POUND SIGN' where ujis=0xA1F2;
update t1 set name='U+FF05 FULLWIDTH PERCENT SIGN' where ujis=0xA1F3;
update t1 set name='U+FF03 FULLWIDTH NUMBER SIGN' where ujis=0xA1F4;
update t1 set name='U+FF06 FULLWIDTH AMPERSAND' where ujis=0xA1F5;
update t1 set name='U+FF0A FULLWIDTH ASTERISK' where ujis=0xA1F6;
update t1 set name='U+FF20 FULLWIDTH COMMERCIAL AT' where ujis=0xA1F7;
update t1 set name='U+00A7 SECTION SIGN' where ujis=0xA1F8;
update t1 set name='U+2606 WHITE STAR' where ujis=0xA1F9;
update t1 set name='U+2605 BLACK STAR' where ujis=0xA1FA;
update t1 set name='U+25CB WHITE CIRCLE' where ujis=0xA1FB;
update t1 set name='U+25CF BLACK CIRCLE' where ujis=0xA1FC;
update t1 set name='U+25CE BULLSEYE' where ujis=0xA1FD;
update t1 set name='U+25C7 WHITE DIAMOND' where ujis=0xA1FE;
update t1 set name='U+25C6 BLACK DIAMOND' where ujis=0xA2A1;
update t1 set name='U+25A1 WHITE SQUARE' where ujis=0xA2A2;
update t1 set name='U+25A0 BLACK SQUARE' where ujis=0xA2A3;
update t1 set name='U+25B3 WHITE UP-POINTING TRIANGLE' where ujis=0xA2A4;
update t1 set name='U+25B2 BLACK UP-POINTING TRIANGLE' where ujis=0xA2A5;
update t1 set name='U+25BD WHITE DOWN-POINTING TRIANGLE' where ujis=0xA2A6;
update t1 set name='U+25BC BLACK DOWN-POINTING TRIANGLE' where ujis=0xA2A7;
update t1 set name='U+203B REFERENCE MARK' where ujis=0xA2A8;
update t1 set name='U+3012 POSTAL MARK' where ujis=0xA2A9;
update t1 set name='U+2192 RIGHTWARDS ARROW' where ujis=0xA2AA;
update t1 set name='U+2190 LEFTWARDS ARROW' where ujis=0xA2AB;
update t1 set name='U+2191 UPWARDS ARROW' where ujis=0xA2AC;
update t1 set name='U+2193 DOWNWARDS ARROW' where ujis=0xA2AD;
update t1 set name='U+3013 GETA MARK' where ujis=0xA2AE;
update t1 set name='U+2208 ELEMENT OF' where ujis=0xA2BA;
update t1 set name='U+220B CONTAINS AS MEMBER' where ujis=0xA2BB;
update t1 set name='U+2286 SUBset OF OR EQUAL TO' where ujis=0xA2BC;
update t1 set name='U+2287 SUPERset OF OR EQUAL TO' where ujis=0xA2BD;
update t1 set name='U+2282 SUBset OF' where ujis=0xA2BE;
update t1 set name='U+2283 SUPERset OF' where ujis=0xA2BF;
update t1 set name='U+222A UNION' where ujis=0xA2C0;
update t1 set name='U+2229 INTERSECTION' where ujis=0xA2C1;
update t1 set name='U+2227 LOGICAL AND' where ujis=0xA2CA;
update t1 set name='U+2228 LOGICAL OR' where ujis=0xA2CB;
update t1 set name='U+00AC NOT SIGN' where ujis=0xA2CC;
update t1 set name='U+21D2 RIGHTWARDS DOUBLE ARROW' where ujis=0xA2CD;
update t1 set name='U+21D4 LEFT RIGHT DOUBLE ARROW' where ujis=0xA2CE;
update t1 set name='U+2200 FOR ALL' where ujis=0xA2CF;
update t1 set name='U+2203 THERE EXISTS' where ujis=0xA2D0;
update t1 set name='U+2220 ANGLE' where ujis=0xA2DC;
update t1 set name='U+22A5 UP TACK' where ujis=0xA2DD;
update t1 set name='U+2312 ARC' where ujis=0xA2DE;
update t1 set name='U+2202 PARTIAL DIFFERENTIAL' where ujis=0xA2DF;
update t1 set name='U+2207 NABLA' where ujis=0xA2E0;
update t1 set name='U+2261 IDENTICAL TO' where ujis=0xA2E1;
update t1 set name='U+2252 APPROXIMATELY EQUAL TO OR THE IMAGE OF' where ujis=0xA2E2;
update t1 set name='U+226A MUCH LESS-THAN' where ujis=0xA2E3;
update t1 set name='U+226B MUCH GREATER-THAN' where ujis=0xA2E4;
update t1 set name='U+221A SQUARE ROOT' where ujis=0xA2E5;
update t1 set name='U+223D REVERSED TILDE' where ujis=0xA2E6;
update t1 set name='U+221D PROPORTIONAL TO' where ujis=0xA2E7;
update t1 set name='U+2235 BECAUSE' where ujis=0xA2E8;
update t1 set name='U+222B INTEGRAL' where ujis=0xA2E9;
update t1 set name='U+222C DOUBLE INTEGRAL' where ujis=0xA2EA;
update t1 set name='U+212B ANGSTROM SIGN' where ujis=0xA2F2;
update t1 set name='U+2030 PER MILLE SIGN' where ujis=0xA2F3;
update t1 set name='U+266F MUSIC SHARP SIGN' where ujis=0xA2F4;
update t1 set name='U+266D MUSIC FLAT SIGN' where ujis=0xA2F5;
update t1 set name='U+266A EIGHTH NOTE' where ujis=0xA2F6;
update t1 set name='U+2020 DAGGER' where ujis=0xA2F7;
update t1 set name='U+2021 DOUBLE DAGGER' where ujis=0xA2F8;
update t1 set name='U+00B6 PILCROW SIGN' where ujis=0xA2F9;
update t1 set name='U+25EF LARGE CIRCLE' where ujis=0xA2FE;
update t1 set name='U+FF10 FULLWIDTH DIGIT ZERO' where ujis=0xA3B0;
update t1 set name='U+FF11 FULLWIDTH DIGIT ONE' where ujis=0xA3B1;
update t1 set name='U+FF12 FULLWIDTH DIGIT TWO' where ujis=0xA3B2;
update t1 set name='U+FF13 FULLWIDTH DIGIT THREE' where ujis=0xA3B3;
update t1 set name='U+FF14 FULLWIDTH DIGIT FOUR' where ujis=0xA3B4;
update t1 set name='U+FF15 FULLWIDTH DIGIT FIVE' where ujis=0xA3B5;
update t1 set name='U+FF16 FULLWIDTH DIGIT SIX' where ujis=0xA3B6;
update t1 set name='U+FF17 FULLWIDTH DIGIT SEVEN' where ujis=0xA3B7;
update t1 set name='U+FF18 FULLWIDTH DIGIT EIGHT' where ujis=0xA3B8;
update t1 set name='U+FF19 FULLWIDTH DIGIT NINE' where ujis=0xA3B9;
update t1 set name='U+FF21 FULLWIDTH LATIN CAPITAL LETTER A' where ujis=0xA3C1;
update t1 set name='U+FF22 FULLWIDTH LATIN CAPITAL LETTER B' where ujis=0xA3C2;
update t1 set name='U+FF23 FULLWIDTH LATIN CAPITAL LETTER C' where ujis=0xA3C3;
update t1 set name='U+FF24 FULLWIDTH LATIN CAPITAL LETTER D' where ujis=0xA3C4;
update t1 set name='U+FF25 FULLWIDTH LATIN CAPITAL LETTER E' where ujis=0xA3C5;
update t1 set name='U+FF26 FULLWIDTH LATIN CAPITAL LETTER F' where ujis=0xA3C6;
update t1 set name='U+FF27 FULLWIDTH LATIN CAPITAL LETTER G' where ujis=0xA3C7;
update t1 set name='U+FF28 FULLWIDTH LATIN CAPITAL LETTER H' where ujis=0xA3C8;
update t1 set name='U+FF29 FULLWIDTH LATIN CAPITAL LETTER I' where ujis=0xA3C9;
update t1 set name='U+FF2A FULLWIDTH LATIN CAPITAL LETTER J' where ujis=0xA3CA;
update t1 set name='U+FF2B FULLWIDTH LATIN CAPITAL LETTER K' where ujis=0xA3CB;
update t1 set name='U+FF2C FULLWIDTH LATIN CAPITAL LETTER L' where ujis=0xA3CC;
update t1 set name='U+FF2D FULLWIDTH LATIN CAPITAL LETTER M' where ujis=0xA3CD;
update t1 set name='U+FF2E FULLWIDTH LATIN CAPITAL LETTER N' where ujis=0xA3CE;
update t1 set name='U+FF2F FULLWIDTH LATIN CAPITAL LETTER O' where ujis=0xA3CF;
update t1 set name='U+FF30 FULLWIDTH LATIN CAPITAL LETTER P' where ujis=0xA3D0;
update t1 set name='U+FF31 FULLWIDTH LATIN CAPITAL LETTER Q' where ujis=0xA3D1;
update t1 set name='U+FF32 FULLWIDTH LATIN CAPITAL LETTER R' where ujis=0xA3D2;
update t1 set name='U+FF33 FULLWIDTH LATIN CAPITAL LETTER S' where ujis=0xA3D3;
update t1 set name='U+FF34 FULLWIDTH LATIN CAPITAL LETTER T' where ujis=0xA3D4;
update t1 set name='U+FF35 FULLWIDTH LATIN CAPITAL LETTER U' where ujis=0xA3D5;
update t1 set name='U+FF36 FULLWIDTH LATIN CAPITAL LETTER V' where ujis=0xA3D6;
update t1 set name='U+FF37 FULLWIDTH LATIN CAPITAL LETTER W' where ujis=0xA3D7;
update t1 set name='U+FF38 FULLWIDTH LATIN CAPITAL LETTER X' where ujis=0xA3D8;
update t1 set name='U+FF39 FULLWIDTH LATIN CAPITAL LETTER Y' where ujis=0xA3D9;
update t1 set name='U+FF3A FULLWIDTH LATIN CAPITAL LETTER Z' where ujis=0xA3DA;
update t1 set name='U+FF41 FULLWIDTH LATIN SMALL LETTER A' where ujis=0xA3E1;
update t1 set name='U+FF42 FULLWIDTH LATIN SMALL LETTER B' where ujis=0xA3E2;
update t1 set name='U+FF43 FULLWIDTH LATIN SMALL LETTER C' where ujis=0xA3E3;
update t1 set name='U+FF44 FULLWIDTH LATIN SMALL LETTER D' where ujis=0xA3E4;
update t1 set name='U+FF45 FULLWIDTH LATIN SMALL LETTER E' where ujis=0xA3E5;
update t1 set name='U+FF46 FULLWIDTH LATIN SMALL LETTER F' where ujis=0xA3E6;
update t1 set name='U+FF47 FULLWIDTH LATIN SMALL LETTER G' where ujis=0xA3E7;
update t1 set name='U+FF48 FULLWIDTH LATIN SMALL LETTER H' where ujis=0xA3E8;
update t1 set name='U+FF49 FULLWIDTH LATIN SMALL LETTER I' where ujis=0xA3E9;
update t1 set name='U+FF4A FULLWIDTH LATIN SMALL LETTER J' where ujis=0xA3EA;
update t1 set name='U+FF4B FULLWIDTH LATIN SMALL LETTER K' where ujis=0xA3EB;
update t1 set name='U+FF4C FULLWIDTH LATIN SMALL LETTER L' where ujis=0xA3EC;
update t1 set name='U+FF4D FULLWIDTH LATIN SMALL LETTER M' where ujis=0xA3ED;
update t1 set name='U+FF4E FULLWIDTH LATIN SMALL LETTER N' where ujis=0xA3EE;
update t1 set name='U+FF4F FULLWIDTH LATIN SMALL LETTER O' where ujis=0xA3EF;
update t1 set name='U+FF50 FULLWIDTH LATIN SMALL LETTER P' where ujis=0xA3F0;
update t1 set name='U+FF51 FULLWIDTH LATIN SMALL LETTER Q' where ujis=0xA3F1;
update t1 set name='U+FF52 FULLWIDTH LATIN SMALL LETTER R' where ujis=0xA3F2;
update t1 set name='U+FF53 FULLWIDTH LATIN SMALL LETTER S' where ujis=0xA3F3;
update t1 set name='U+FF54 FULLWIDTH LATIN SMALL LETTER T' where ujis=0xA3F4;
update t1 set name='U+FF55 FULLWIDTH LATIN SMALL LETTER U' where ujis=0xA3F5;
update t1 set name='U+FF56 FULLWIDTH LATIN SMALL LETTER V' where ujis=0xA3F6;
update t1 set name='U+FF57 FULLWIDTH LATIN SMALL LETTER W' where ujis=0xA3F7;
update t1 set name='U+FF58 FULLWIDTH LATIN SMALL LETTER X' where ujis=0xA3F8;
update t1 set name='U+FF59 FULLWIDTH LATIN SMALL LETTER Y' where ujis=0xA3F9;
update t1 set name='U+FF5A FULLWIDTH LATIN SMALL LETTER Z' where ujis=0xA3FA;
update t1 set name='U+3041 HIRAGANA LETTER SMALL A' where ujis=0xA4A1;
update t1 set name='U+3042 HIRAGANA LETTER A' where ujis=0xA4A2;
update t1 set name='U+3043 HIRAGANA LETTER SMALL I' where ujis=0xA4A3;
update t1 set name='U+3044 HIRAGANA LETTER I' where ujis=0xA4A4;
update t1 set name='U+3045 HIRAGANA LETTER SMALL U' where ujis=0xA4A5;
update t1 set name='U+3046 HIRAGANA LETTER U' where ujis=0xA4A6;
update t1 set name='U+3047 HIRAGANA LETTER SMALL E' where ujis=0xA4A7;
update t1 set name='U+3048 HIRAGANA LETTER E' where ujis=0xA4A8;
update t1 set name='U+3049 HIRAGANA LETTER SMALL O' where ujis=0xA4A9;
update t1 set name='U+304A HIRAGANA LETTER O' where ujis=0xA4AA;
update t1 set name='U+304B HIRAGANA LETTER KA' where ujis=0xA4AB;
update t1 set name='U+304C HIRAGANA LETTER GA' where ujis=0xA4AC;
update t1 set name='U+304D HIRAGANA LETTER KI' where ujis=0xA4AD;
update t1 set name='U+304E HIRAGANA LETTER GI' where ujis=0xA4AE;
update t1 set name='U+304F HIRAGANA LETTER KU' where ujis=0xA4AF;
update t1 set name='U+3050 HIRAGANA LETTER GU' where ujis=0xA4B0;
update t1 set name='U+3051 HIRAGANA LETTER KE' where ujis=0xA4B1;
update t1 set name='U+3052 HIRAGANA LETTER GE' where ujis=0xA4B2;
update t1 set name='U+3053 HIRAGANA LETTER KO' where ujis=0xA4B3;
update t1 set name='U+3054 HIRAGANA LETTER GO' where ujis=0xA4B4;
update t1 set name='U+3055 HIRAGANA LETTER SA' where ujis=0xA4B5;
update t1 set name='U+3056 HIRAGANA LETTER ZA' where ujis=0xA4B6;
update t1 set name='U+3057 HIRAGANA LETTER SI' where ujis=0xA4B7;
update t1 set name='U+3058 HIRAGANA LETTER ZI' where ujis=0xA4B8;
update t1 set name='U+3059 HIRAGANA LETTER SU' where ujis=0xA4B9;
update t1 set name='U+305A HIRAGANA LETTER ZU' where ujis=0xA4BA;
update t1 set name='U+305B HIRAGANA LETTER SE' where ujis=0xA4BB;
update t1 set name='U+305C HIRAGANA LETTER ZE' where ujis=0xA4BC;
update t1 set name='U+305D HIRAGANA LETTER SO' where ujis=0xA4BD;
update t1 set name='U+305E HIRAGANA LETTER ZO' where ujis=0xA4BE;
update t1 set name='U+305F HIRAGANA LETTER TA' where ujis=0xA4BF;
update t1 set name='U+3060 HIRAGANA LETTER DA' where ujis=0xA4C0;
update t1 set name='U+3061 HIRAGANA LETTER TI' where ujis=0xA4C1;
update t1 set name='U+3062 HIRAGANA LETTER DI' where ujis=0xA4C2;
update t1 set name='U+3063 HIRAGANA LETTER SMALL TU' where ujis=0xA4C3;
update t1 set name='U+3064 HIRAGANA LETTER TU' where ujis=0xA4C4;
update t1 set name='U+3065 HIRAGANA LETTER DU' where ujis=0xA4C5;
update t1 set name='U+3066 HIRAGANA LETTER TE' where ujis=0xA4C6;
update t1 set name='U+3067 HIRAGANA LETTER DE' where ujis=0xA4C7;
update t1 set name='U+3068 HIRAGANA LETTER TO' where ujis=0xA4C8;
update t1 set name='U+3069 HIRAGANA LETTER DO' where ujis=0xA4C9;
update t1 set name='U+306A HIRAGANA LETTER NA' where ujis=0xA4CA;
update t1 set name='U+306B HIRAGANA LETTER NI' where ujis=0xA4CB;
update t1 set name='U+306C HIRAGANA LETTER NU' where ujis=0xA4CC;
update t1 set name='U+306D HIRAGANA LETTER NE' where ujis=0xA4CD;
update t1 set name='U+306E HIRAGANA LETTER NO' where ujis=0xA4CE;
update t1 set name='U+306F HIRAGANA LETTER HA' where ujis=0xA4CF;
update t1 set name='U+3070 HIRAGANA LETTER BA' where ujis=0xA4D0;
update t1 set name='U+3071 HIRAGANA LETTER PA' where ujis=0xA4D1;
update t1 set name='U+3072 HIRAGANA LETTER HI' where ujis=0xA4D2;
update t1 set name='U+3073 HIRAGANA LETTER BI' where ujis=0xA4D3;
update t1 set name='U+3074 HIRAGANA LETTER PI' where ujis=0xA4D4;
update t1 set name='U+3075 HIRAGANA LETTER HU' where ujis=0xA4D5;
update t1 set name='U+3076 HIRAGANA LETTER BU' where ujis=0xA4D6;
update t1 set name='U+3077 HIRAGANA LETTER PU' where ujis=0xA4D7;
update t1 set name='U+3078 HIRAGANA LETTER HE' where ujis=0xA4D8;
update t1 set name='U+3079 HIRAGANA LETTER BE' where ujis=0xA4D9;
update t1 set name='U+307A HIRAGANA LETTER PE' where ujis=0xA4DA;
update t1 set name='U+307B HIRAGANA LETTER HO' where ujis=0xA4DB;
update t1 set name='U+307C HIRAGANA LETTER BO' where ujis=0xA4DC;
update t1 set name='U+307D HIRAGANA LETTER PO' where ujis=0xA4DD;
update t1 set name='U+307E HIRAGANA LETTER MA' where ujis=0xA4DE;
update t1 set name='U+307F HIRAGANA LETTER MI' where ujis=0xA4DF;
update t1 set name='U+3080 HIRAGANA LETTER MU' where ujis=0xA4E0;
update t1 set name='U+3081 HIRAGANA LETTER ME' where ujis=0xA4E1;
update t1 set name='U+3082 HIRAGANA LETTER MO' where ujis=0xA4E2;
update t1 set name='U+3083 HIRAGANA LETTER SMALL YA' where ujis=0xA4E3;
update t1 set name='U+3084 HIRAGANA LETTER YA' where ujis=0xA4E4;
update t1 set name='U+3085 HIRAGANA LETTER SMALL YU' where ujis=0xA4E5;
update t1 set name='U+3086 HIRAGANA LETTER YU' where ujis=0xA4E6;
update t1 set name='U+3087 HIRAGANA LETTER SMALL YO' where ujis=0xA4E7;
update t1 set name='U+3088 HIRAGANA LETTER YO' where ujis=0xA4E8;
update t1 set name='U+3089 HIRAGANA LETTER RA' where ujis=0xA4E9;
update t1 set name='U+308A HIRAGANA LETTER RI' where ujis=0xA4EA;
update t1 set name='U+308B HIRAGANA LETTER RU' where ujis=0xA4EB;
update t1 set name='U+308C HIRAGANA LETTER RE' where ujis=0xA4EC;
update t1 set name='U+308D HIRAGANA LETTER RO' where ujis=0xA4ED;
update t1 set name='U+308E HIRAGANA LETTER SMALL WA' where ujis=0xA4EE;
update t1 set name='U+308F HIRAGANA LETTER WA' where ujis=0xA4EF;
update t1 set name='U+3090 HIRAGANA LETTER WI' where ujis=0xA4F0;
update t1 set name='U+3091 HIRAGANA LETTER WE' where ujis=0xA4F1;
update t1 set name='U+3092 HIRAGANA LETTER WO' where ujis=0xA4F2;
update t1 set name='U+3093 HIRAGANA LETTER N' where ujis=0xA4F3;
update t1 set name='U+30A1 KATAKANA LETTER SMALL A' where ujis=0xA5A1;
update t1 set name='U+30A2 KATAKANA LETTER A' where ujis=0xA5A2;
update t1 set name='U+30A3 KATAKANA LETTER SMALL I' where ujis=0xA5A3;
update t1 set name='U+30A4 KATAKANA LETTER I' where ujis=0xA5A4;
update t1 set name='U+30A5 KATAKANA LETTER SMALL U' where ujis=0xA5A5;
update t1 set name='U+30A6 KATAKANA LETTER U' where ujis=0xA5A6;
update t1 set name='U+30A7 KATAKANA LETTER SMALL E' where ujis=0xA5A7;
update t1 set name='U+30A8 KATAKANA LETTER E' where ujis=0xA5A8;
update t1 set name='U+30A9 KATAKANA LETTER SMALL O' where ujis=0xA5A9;
update t1 set name='U+30AA KATAKANA LETTER O' where ujis=0xA5AA;
update t1 set name='U+30AB KATAKANA LETTER KA' where ujis=0xA5AB;
update t1 set name='U+30AC KATAKANA LETTER GA' where ujis=0xA5AC;
update t1 set name='U+30AD KATAKANA LETTER KI' where ujis=0xA5AD;
update t1 set name='U+30AE KATAKANA LETTER GI' where ujis=0xA5AE;
update t1 set name='U+30AF KATAKANA LETTER KU' where ujis=0xA5AF;
update t1 set name='U+30B0 KATAKANA LETTER GU' where ujis=0xA5B0;
update t1 set name='U+30B1 KATAKANA LETTER KE' where ujis=0xA5B1;
update t1 set name='U+30B2 KATAKANA LETTER GE' where ujis=0xA5B2;
update t1 set name='U+30B3 KATAKANA LETTER KO' where ujis=0xA5B3;
update t1 set name='U+30B4 KATAKANA LETTER GO' where ujis=0xA5B4;
update t1 set name='U+30B5 KATAKANA LETTER SA' where ujis=0xA5B5;
update t1 set name='U+30B6 KATAKANA LETTER ZA' where ujis=0xA5B6;
update t1 set name='U+30B7 KATAKANA LETTER SI' where ujis=0xA5B7;
update t1 set name='U+30B8 KATAKANA LETTER ZI' where ujis=0xA5B8;
update t1 set name='U+30B9 KATAKANA LETTER SU' where ujis=0xA5B9;
update t1 set name='U+30BA KATAKANA LETTER ZU' where ujis=0xA5BA;
update t1 set name='U+30BB KATAKANA LETTER SE' where ujis=0xA5BB;
update t1 set name='U+30BC KATAKANA LETTER ZE' where ujis=0xA5BC;
update t1 set name='U+30BD KATAKANA LETTER SO' where ujis=0xA5BD;
update t1 set name='U+30BE KATAKANA LETTER ZO' where ujis=0xA5BE;
update t1 set name='U+30BF KATAKANA LETTER TA' where ujis=0xA5BF;
update t1 set name='U+30C0 KATAKANA LETTER DA' where ujis=0xA5C0;
update t1 set name='U+30C1 KATAKANA LETTER TI' where ujis=0xA5C1;
update t1 set name='U+30C2 KATAKANA LETTER DI' where ujis=0xA5C2;
update t1 set name='U+30C3 KATAKANA LETTER SMALL TU' where ujis=0xA5C3;
update t1 set name='U+30C4 KATAKANA LETTER TU' where ujis=0xA5C4;
update t1 set name='U+30C5 KATAKANA LETTER DU' where ujis=0xA5C5;
update t1 set name='U+30C6 KATAKANA LETTER TE' where ujis=0xA5C6;
update t1 set name='U+30C7 KATAKANA LETTER DE' where ujis=0xA5C7;
update t1 set name='U+30C8 KATAKANA LETTER TO' where ujis=0xA5C8;
update t1 set name='U+30C9 KATAKANA LETTER DO' where ujis=0xA5C9;
update t1 set name='U+30CA KATAKANA LETTER NA' where ujis=0xA5CA;
update t1 set name='U+30CB KATAKANA LETTER NI' where ujis=0xA5CB;
update t1 set name='U+30CC KATAKANA LETTER NU' where ujis=0xA5CC;
update t1 set name='U+30CD KATAKANA LETTER NE' where ujis=0xA5CD;
update t1 set name='U+30CE KATAKANA LETTER NO' where ujis=0xA5CE;
update t1 set name='U+30CF KATAKANA LETTER HA' where ujis=0xA5CF;
update t1 set name='U+30D0 KATAKANA LETTER BA' where ujis=0xA5D0;
update t1 set name='U+30D1 KATAKANA LETTER PA' where ujis=0xA5D1;
update t1 set name='U+30D2 KATAKANA LETTER HI' where ujis=0xA5D2;
update t1 set name='U+30D3 KATAKANA LETTER BI' where ujis=0xA5D3;
update t1 set name='U+30D4 KATAKANA LETTER PI' where ujis=0xA5D4;
update t1 set name='U+30D5 KATAKANA LETTER HU' where ujis=0xA5D5;
update t1 set name='U+30D6 KATAKANA LETTER BU' where ujis=0xA5D6;
update t1 set name='U+30D7 KATAKANA LETTER PU' where ujis=0xA5D7;
update t1 set name='U+30D8 KATAKANA LETTER HE' where ujis=0xA5D8;
update t1 set name='U+30D9 KATAKANA LETTER BE' where ujis=0xA5D9;
update t1 set name='U+30DA KATAKANA LETTER PE' where ujis=0xA5DA;
update t1 set name='U+30DB KATAKANA LETTER HO' where ujis=0xA5DB;
update t1 set name='U+30DC KATAKANA LETTER BO' where ujis=0xA5DC;
update t1 set name='U+30DD KATAKANA LETTER PO' where ujis=0xA5DD;
update t1 set name='U+30DE KATAKANA LETTER MA' where ujis=0xA5DE;
update t1 set name='U+30DF KATAKANA LETTER MI' where ujis=0xA5DF;
update t1 set name='U+30E0 KATAKANA LETTER MU' where ujis=0xA5E0;
update t1 set name='U+30E1 KATAKANA LETTER ME' where ujis=0xA5E1;
update t1 set name='U+30E2 KATAKANA LETTER MO' where ujis=0xA5E2;
update t1 set name='U+30E3 KATAKANA LETTER SMALL YA' where ujis=0xA5E3;
update t1 set name='U+30E4 KATAKANA LETTER YA' where ujis=0xA5E4;
update t1 set name='U+30E5 KATAKANA LETTER SMALL YU' where ujis=0xA5E5;
update t1 set name='U+30E6 KATAKANA LETTER YU' where ujis=0xA5E6;
update t1 set name='U+30E7 KATAKANA LETTER SMALL YO' where ujis=0xA5E7;
update t1 set name='U+30E8 KATAKANA LETTER YO' where ujis=0xA5E8;
update t1 set name='U+30E9 KATAKANA LETTER RA' where ujis=0xA5E9;
update t1 set name='U+30EA KATAKANA LETTER RI' where ujis=0xA5EA;
update t1 set name='U+30EB KATAKANA LETTER RU' where ujis=0xA5EB;
update t1 set name='U+30EC KATAKANA LETTER RE' where ujis=0xA5EC;
update t1 set name='U+30ED KATAKANA LETTER RO' where ujis=0xA5ED;
update t1 set name='U+30EE KATAKANA LETTER SMALL WA' where ujis=0xA5EE;
update t1 set name='U+30EF KATAKANA LETTER WA' where ujis=0xA5EF;
update t1 set name='U+30F0 KATAKANA LETTER WI' where ujis=0xA5F0;
update t1 set name='U+30F1 KATAKANA LETTER WE' where ujis=0xA5F1;
update t1 set name='U+30F2 KATAKANA LETTER WO' where ujis=0xA5F2;
update t1 set name='U+30F3 KATAKANA LETTER N' where ujis=0xA5F3;
update t1 set name='U+30F4 KATAKANA LETTER VU' where ujis=0xA5F4;
update t1 set name='U+30F5 KATAKANA LETTER SMALL KA' where ujis=0xA5F5;
update t1 set name='U+30F6 KATAKANA LETTER SMALL KE' where ujis=0xA5F6;
update t1 set name='U+0391 GREEK CAPITAL LETTER ALPHA' where ujis=0xA6A1;
update t1 set name='U+0392 GREEK CAPITAL LETTER BETA' where ujis=0xA6A2;
update t1 set name='U+0393 GREEK CAPITAL LETTER GAMMA' where ujis=0xA6A3;
update t1 set name='U+0394 GREEK CAPITAL LETTER DELTA' where ujis=0xA6A4;
update t1 set name='U+0395 GREEK CAPITAL LETTER EPSILON' where ujis=0xA6A5;
update t1 set name='U+0396 GREEK CAPITAL LETTER ZETA' where ujis=0xA6A6;
update t1 set name='U+0397 GREEK CAPITAL LETTER ETA' where ujis=0xA6A7;
update t1 set name='U+0398 GREEK CAPITAL LETTER THETA' where ujis=0xA6A8;
update t1 set name='U+0399 GREEK CAPITAL LETTER IOTA' where ujis=0xA6A9;
update t1 set name='U+039A GREEK CAPITAL LETTER KAPPA' where ujis=0xA6AA;
update t1 set name='U+039B GREEK CAPITAL LETTER LAMDA' where ujis=0xA6AB;
update t1 set name='U+039C GREEK CAPITAL LETTER MU' where ujis=0xA6AC;
update t1 set name='U+039D GREEK CAPITAL LETTER NU' where ujis=0xA6AD;
update t1 set name='U+039E GREEK CAPITAL LETTER XI' where ujis=0xA6AE;
update t1 set name='U+039F GREEK CAPITAL LETTER OMICRON' where ujis=0xA6AF;
update t1 set name='U+03A0 GREEK CAPITAL LETTER PI' where ujis=0xA6B0;
update t1 set name='U+03A1 GREEK CAPITAL LETTER RHO' where ujis=0xA6B1;
update t1 set name='U+03A3 GREEK CAPITAL LETTER SIGMA' where ujis=0xA6B2;
update t1 set name='U+03A4 GREEK CAPITAL LETTER TAU' where ujis=0xA6B3;
update t1 set name='U+03A5 GREEK CAPITAL LETTER UPSILON' where ujis=0xA6B4;
update t1 set name='U+03A6 GREEK CAPITAL LETTER PHI' where ujis=0xA6B5;
update t1 set name='U+03A7 GREEK CAPITAL LETTER CHI' where ujis=0xA6B6;
update t1 set name='U+03A8 GREEK CAPITAL LETTER PSI' where ujis=0xA6B7;
update t1 set name='U+03A9 GREEK CAPITAL LETTER OMEGA' where ujis=0xA6B8;
update t1 set name='U+03B1 GREEK SMALL LETTER ALPHA' where ujis=0xA6C1;
update t1 set name='U+03B2 GREEK SMALL LETTER BETA' where ujis=0xA6C2;
update t1 set name='U+03B3 GREEK SMALL LETTER GAMMA' where ujis=0xA6C3;
update t1 set name='U+03B4 GREEK SMALL LETTER DELTA' where ujis=0xA6C4;
update t1 set name='U+03B5 GREEK SMALL LETTER EPSILON' where ujis=0xA6C5;
update t1 set name='U+03B6 GREEK SMALL LETTER ZETA' where ujis=0xA6C6;
update t1 set name='U+03B7 GREEK SMALL LETTER ETA' where ujis=0xA6C7;
update t1 set name='U+03B8 GREEK SMALL LETTER THETA' where ujis=0xA6C8;
update t1 set name='U+03B9 GREEK SMALL LETTER IOTA' where ujis=0xA6C9;
update t1 set name='U+03BA GREEK SMALL LETTER KAPPA' where ujis=0xA6CA;
update t1 set name='U+03BB GREEK SMALL LETTER LAMDA' where ujis=0xA6CB;
update t1 set name='U+03BC GREEK SMALL LETTER MU' where ujis=0xA6CC;
update t1 set name='U+03BD GREEK SMALL LETTER NU' where ujis=0xA6CD;
update t1 set name='U+03BE GREEK SMALL LETTER XI' where ujis=0xA6CE;
update t1 set name='U+03BF GREEK SMALL LETTER OMICRON' where ujis=0xA6CF;
update t1 set name='U+03C0 GREEK SMALL LETTER PI' where ujis=0xA6D0;
update t1 set name='U+03C1 GREEK SMALL LETTER RHO' where ujis=0xA6D1;
update t1 set name='U+03C3 GREEK SMALL LETTER SIGMA' where ujis=0xA6D2;
update t1 set name='U+03C4 GREEK SMALL LETTER TAU' where ujis=0xA6D3;
update t1 set name='U+03C5 GREEK SMALL LETTER UPSILON' where ujis=0xA6D4;
update t1 set name='U+03C6 GREEK SMALL LETTER PHI' where ujis=0xA6D5;
update t1 set name='U+03C7 GREEK SMALL LETTER CHI' where ujis=0xA6D6;
update t1 set name='U+03C8 GREEK SMALL LETTER PSI' where ujis=0xA6D7;
update t1 set name='U+03C9 GREEK SMALL LETTER OMEGA' where ujis=0xA6D8;
update t1 set name='U+0410 CYRILLIC CAPITAL LETTER A' where ujis=0xA7A1;
update t1 set name='U+0411 CYRILLIC CAPITAL LETTER BE' where ujis=0xA7A2;
update t1 set name='U+0412 CYRILLIC CAPITAL LETTER VE' where ujis=0xA7A3;
update t1 set name='U+0413 CYRILLIC CAPITAL LETTER GHE' where ujis=0xA7A4;
update t1 set name='U+0414 CYRILLIC CAPITAL LETTER DE' where ujis=0xA7A5;
update t1 set name='U+0415 CYRILLIC CAPITAL LETTER IE' where ujis=0xA7A6;
update t1 set name='U+0401 CYRILLIC CAPITAL LETTER IO' where ujis=0xA7A7;
update t1 set name='U+0416 CYRILLIC CAPITAL LETTER ZHE' where ujis=0xA7A8;
update t1 set name='U+0417 CYRILLIC CAPITAL LETTER ZE' where ujis=0xA7A9;
update t1 set name='U+0418 CYRILLIC CAPITAL LETTER I' where ujis=0xA7AA;
update t1 set name='U+0419 CYRILLIC CAPITAL LETTER SHORT I' where ujis=0xA7AB;
update t1 set name='U+041A CYRILLIC CAPITAL LETTER KA' where ujis=0xA7AC;
update t1 set name='U+041B CYRILLIC CAPITAL LETTER EL' where ujis=0xA7AD;
update t1 set name='U+041C CYRILLIC CAPITAL LETTER EM' where ujis=0xA7AE;
update t1 set name='U+041D CYRILLIC CAPITAL LETTER EN' where ujis=0xA7AF;
update t1 set name='U+041E CYRILLIC CAPITAL LETTER O' where ujis=0xA7B0;
update t1 set name='U+041F CYRILLIC CAPITAL LETTER PE' where ujis=0xA7B1;
update t1 set name='U+0420 CYRILLIC CAPITAL LETTER ER' where ujis=0xA7B2;
update t1 set name='U+0421 CYRILLIC CAPITAL LETTER ES' where ujis=0xA7B3;
update t1 set name='U+0422 CYRILLIC CAPITAL LETTER TE' where ujis=0xA7B4;
update t1 set name='U+0423 CYRILLIC CAPITAL LETTER U' where ujis=0xA7B5;
update t1 set name='U+0424 CYRILLIC CAPITAL LETTER EF' where ujis=0xA7B6;
update t1 set name='U+0425 CYRILLIC CAPITAL LETTER HA' where ujis=0xA7B7;
update t1 set name='U+0426 CYRILLIC CAPITAL LETTER TSE' where ujis=0xA7B8;
update t1 set name='U+0427 CYRILLIC CAPITAL LETTER CHE' where ujis=0xA7B9;
update t1 set name='U+0428 CYRILLIC CAPITAL LETTER SHA' where ujis=0xA7BA;
update t1 set name='U+0429 CYRILLIC CAPITAL LETTER SHCHA' where ujis=0xA7BB;
update t1 set name='U+042A CYRILLIC CAPITAL LETTER HARD SIGN' where ujis=0xA7BC;
update t1 set name='U+042B CYRILLIC CAPITAL LETTER YERU' where ujis=0xA7BD;
update t1 set name='U+042C CYRILLIC CAPITAL LETTER SOFT SIGN' where ujis=0xA7BE;
update t1 set name='U+042D CYRILLIC CAPITAL LETTER E' where ujis=0xA7BF;
update t1 set name='U+042E CYRILLIC CAPITAL LETTER YU' where ujis=0xA7C0;
update t1 set name='U+042F CYRILLIC CAPITAL LETTER YA' where ujis=0xA7C1;
update t1 set name='U+0430 CYRILLIC SMALL LETTER A' where ujis=0xA7D1;
update t1 set name='U+0431 CYRILLIC SMALL LETTER BE' where ujis=0xA7D2;
update t1 set name='U+0432 CYRILLIC SMALL LETTER VE' where ujis=0xA7D3;
update t1 set name='U+0433 CYRILLIC SMALL LETTER GHE' where ujis=0xA7D4;
update t1 set name='U+0434 CYRILLIC SMALL LETTER DE' where ujis=0xA7D5;
update t1 set name='U+0435 CYRILLIC SMALL LETTER IE' where ujis=0xA7D6;
update t1 set name='U+0451 CYRILLIC SMALL LETTER IO' where ujis=0xA7D7;
update t1 set name='U+0436 CYRILLIC SMALL LETTER ZHE' where ujis=0xA7D8;
update t1 set name='U+0437 CYRILLIC SMALL LETTER ZE' where ujis=0xA7D9;
update t1 set name='U+0438 CYRILLIC SMALL LETTER I' where ujis=0xA7DA;
update t1 set name='U+0439 CYRILLIC SMALL LETTER SHORT I' where ujis=0xA7DB;
update t1 set name='U+043A CYRILLIC SMALL LETTER KA' where ujis=0xA7DC;
update t1 set name='U+043B CYRILLIC SMALL LETTER EL' where ujis=0xA7DD;
update t1 set name='U+043C CYRILLIC SMALL LETTER EM' where ujis=0xA7DE;
update t1 set name='U+043D CYRILLIC SMALL LETTER EN' where ujis=0xA7DF;
update t1 set name='U+043E CYRILLIC SMALL LETTER O' where ujis=0xA7E0;
update t1 set name='U+043F CYRILLIC SMALL LETTER PE' where ujis=0xA7E1;
update t1 set name='U+0440 CYRILLIC SMALL LETTER ER' where ujis=0xA7E2;
update t1 set name='U+0441 CYRILLIC SMALL LETTER ES' where ujis=0xA7E3;
update t1 set name='U+0442 CYRILLIC SMALL LETTER TE' where ujis=0xA7E4;
update t1 set name='U+0443 CYRILLIC SMALL LETTER U' where ujis=0xA7E5;
update t1 set name='U+0444 CYRILLIC SMALL LETTER EF' where ujis=0xA7E6;
update t1 set name='U+0445 CYRILLIC SMALL LETTER HA' where ujis=0xA7E7;
update t1 set name='U+0446 CYRILLIC SMALL LETTER TSE' where ujis=0xA7E8;
update t1 set name='U+0447 CYRILLIC SMALL LETTER CHE' where ujis=0xA7E9;
update t1 set name='U+0448 CYRILLIC SMALL LETTER SHA' where ujis=0xA7EA;
update t1 set name='U+0449 CYRILLIC SMALL LETTER SHCHA' where ujis=0xA7EB;
update t1 set name='U+044A CYRILLIC SMALL LETTER HARD SIGN' where ujis=0xA7EC;
update t1 set name='U+044B CYRILLIC SMALL LETTER YERU' where ujis=0xA7ED;
update t1 set name='U+044C CYRILLIC SMALL LETTER SOFT SIGN' where ujis=0xA7EE;
update t1 set name='U+044D CYRILLIC SMALL LETTER E' where ujis=0xA7EF;
update t1 set name='U+044E CYRILLIC SMALL LETTER YU' where ujis=0xA7F0;
update t1 set name='U+044F CYRILLIC SMALL LETTER YA' where ujis=0xA7F1;
update t1 set name='U+2500 BOX DRAWINGS LIGHT HORIZONTAL' where ujis=0xA8A1;
update t1 set name='U+2502 BOX DRAWINGS LIGHT VERTICAL' where ujis=0xA8A2;
update t1 set name='U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT' where ujis=0xA8A3;
update t1 set name='U+2510 BOX DRAWINGS LIGHT DOWN AND LEFT' where ujis=0xA8A4;
update t1 set name='U+2518 BOX DRAWINGS LIGHT UP AND LEFT' where ujis=0xA8A5;
update t1 set name='U+2514 BOX DRAWINGS LIGHT UP AND RIGHT' where ujis=0xA8A6;
update t1 set name='U+251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT' where ujis=0xA8A7;
update t1 set name='U+252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL' where ujis=0xA8A8;
update t1 set name='U+2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT' where ujis=0xA8A9;
update t1 set name='U+2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL' where ujis=0xA8AA;
update t1 set name='U+253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL' where ujis=0xA8AB;
update t1 set name='U+2501 BOX DRAWINGS HEAVY HORIZONTAL' where ujis=0xA8AC;
update t1 set name='U+2503 BOX DRAWINGS HEAVY VERTICAL' where ujis=0xA8AD;
update t1 set name='U+250F BOX DRAWINGS HEAVY DOWN AND RIGHT' where ujis=0xA8AE;
update t1 set name='U+2513 BOX DRAWINGS HEAVY DOWN AND LEFT' where ujis=0xA8AF;
update t1 set name='U+251B BOX DRAWINGS HEAVY UP AND LEFT' where ujis=0xA8B0;
update t1 set name='U+2517 BOX DRAWINGS HEAVY UP AND RIGHT' where ujis=0xA8B1;
update t1 set name='U+2523 BOX DRAWINGS HEAVY VERTICAL AND RIGHT' where ujis=0xA8B2;
update t1 set name='U+2533 BOX DRAWINGS HEAVY DOWN AND HORIZONTAL' where ujis=0xA8B3;
update t1 set name='U+252B BOX DRAWINGS HEAVY VERTICAL AND LEFT' where ujis=0xA8B4;
update t1 set name='U+253B BOX DRAWINGS HEAVY UP AND HORIZONTAL' where ujis=0xA8B5;
update t1 set name='U+254B BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL' where ujis=0xA8B6;
update t1 set name='U+2520 BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT' where ujis=0xA8B7;
update t1 set name='U+252F BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY' where ujis=0xA8B8;
update t1 set name='U+2528 BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT' where ujis=0xA8B9;
update t1 set name='U+2537 BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY' where ujis=0xA8BA;
update t1 set name='U+253F BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY' where ujis=0xA8BB;
update t1 set name='U+251D BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY' where ujis=0xA8BC;
update t1 set name='U+2530 BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT' where ujis=0xA8BD;
update t1 set name='U+2525 BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY' where ujis=0xA8BE;
update t1 set name='U+2538 BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT' where ujis=0xA8BF;
update t1 set name='U+2542 BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT' where ujis=0xA8C0;
#
# [B0..BF][A1..FE] - 16*94=1504 codes assigned
#
update t1 set name='<CJK>' where ujis >= 0xB0A1 AND ujis <= 0xBFFE;
#
# [C0..CE][A1..FE] = 15*94=1410 codes assigned
#
update t1 set name='<CJK>' where ujis >= 0xC0A1 AND ujis <= 0xCEFE;
#
# 0xCFxx - 51 codes assigned
#
update t1 set name='U+84EE <CJK>' where ujis=0xCFA1;
update t1 set name='U+9023 <CJK>' where ujis=0xCFA2;
update t1 set name='U+932C <CJK>' where ujis=0xCFA3;
update t1 set name='U+5442 <CJK>' where ujis=0xCFA4;
update t1 set name='U+9B6F <CJK>' where ujis=0xCFA5;
update t1 set name='U+6AD3 <CJK>' where ujis=0xCFA6;
update t1 set name='U+7089 <CJK>' where ujis=0xCFA7;
update t1 set name='U+8CC2 <CJK>' where ujis=0xCFA8;
update t1 set name='U+8DEF <CJK>' where ujis=0xCFA9;
update t1 set name='U+9732 <CJK>' where ujis=0xCFAA;
update t1 set name='U+52B4 <CJK>' where ujis=0xCFAB;
update t1 set name='U+5A41 <CJK>' where ujis=0xCFAC;
update t1 set name='U+5ECA <CJK>' where ujis=0xCFAD;
update t1 set name='U+5F04 <CJK>' where ujis=0xCFAE;
update t1 set name='U+6717 <CJK>' where ujis=0xCFAF;
update t1 set name='U+697C <CJK>' where ujis=0xCFB0;
update t1 set name='U+6994 <CJK>' where ujis=0xCFB1;
update t1 set name='U+6D6A <CJK>' where ujis=0xCFB2;
update t1 set name='U+6F0F <CJK>' where ujis=0xCFB3;
update t1 set name='U+7262 <CJK>' where ujis=0xCFB4;
update t1 set name='U+72FC <CJK>' where ujis=0xCFB5;
update t1 set name='U+7BED <CJK>' where ujis=0xCFB6;
update t1 set name='U+8001 <CJK>' where ujis=0xCFB7;
update t1 set name='U+807E <CJK>' where ujis=0xCFB8;
update t1 set name='U+874B <CJK>' where ujis=0xCFB9;
update t1 set name='U+90CE <CJK>' where ujis=0xCFBA;
update t1 set name='U+516D <CJK>' where ujis=0xCFBB;
update t1 set name='U+9E93 <CJK>' where ujis=0xCFBC;
update t1 set name='U+7984 <CJK>' where ujis=0xCFBD;
update t1 set name='U+808B <CJK>' where ujis=0xCFBE;
update t1 set name='U+9332 <CJK>' where ujis=0xCFBF;
update t1 set name='U+8AD6 <CJK>' where ujis=0xCFC0;
update t1 set name='U+502D <CJK>' where ujis=0xCFC1;
update t1 set name='U+548C <CJK>' where ujis=0xCFC2;
update t1 set name='U+8A71 <CJK>' where ujis=0xCFC3;
update t1 set name='U+6B6A <CJK>' where ujis=0xCFC4;
update t1 set name='U+8CC4 <CJK>' where ujis=0xCFC5;
update t1 set name='U+8107 <CJK>' where ujis=0xCFC6;
update t1 set name='U+60D1 <CJK>' where ujis=0xCFC7;
update t1 set name='U+67A0 <CJK>' where ujis=0xCFC8;
update t1 set name='U+9DF2 <CJK>' where ujis=0xCFC9;
update t1 set name='U+4E99 <CJK>' where ujis=0xCFCA;
update t1 set name='U+4E98 <CJK>' where ujis=0xCFCB;
update t1 set name='U+9C10 <CJK>' where ujis=0xCFCC;
update t1 set name='U+8A6B <CJK>' where ujis=0xCFCD;
update t1 set name='U+85C1 <CJK>' where ujis=0xCFCE;
update t1 set name='U+8568 <CJK>' where ujis=0xCFCF;
update t1 set name='U+6900 <CJK>' where ujis=0xCFD0;
update t1 set name='U+6E7E <CJK>' where ujis=0xCFD1;
update t1 set name='U+7897 <CJK>' where ujis=0xCFD2;
update t1 set name='U+8155 <CJK>' where ujis=0xCFD3;
#
# [D0..DF][A1..FE] - all 16*94=1504 codes assigned
#
update t1 set name='<CJK>' where ujis >= 0xD0A1 AND ujis <= 0xDFFE;
#
# [E0..EF][A1..FE] - all codes assigned, 16*94=1504 total
#
update t1 set name='<CJK>' where ujis >= 0xE0A1 AND ujis <= 0xEFFE;
#
# [F0..F3][A1..FE] - all codes assigned, 4*94=376 total
#
update t1 set name='<CJK>' where ujis >= 0xF0A1 AND ujis <= 0xF3FE;
# 0xF4xx - six codes assigned
update t1 set name='U+582F <CJK>' where ujis=0xF4A1;
update t1 set name='U+69C7 <CJK>' where ujis=0xF4A2;
update t1 set name='U+9059 <CJK>' where ujis=0xF4A3;
update t1 set name='U+7464 <CJK>' where ujis=0xF4A4;
update t1 set name='U+51DC <CJK>' where ujis=0xF4A5;
update t1 set name='U+7199 <CJK>' where ujis=0xF4A6;
# [F5..FE][A1..FE] - User defined range
update t1 set name='User defined range #1' where ujis >= 0xF5A1 AND ujis <= 0xFEFE;
# A character from the upper half of JIS-X-0201
# (half-width kana, code set 2)
# is represented by two bytes:
# the first being 0x8E,
# the second in the range 0xA1 - 0xDF.
# Codes according to:
# ftp://ftp.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/JIS0201.TXT
insert into t1 (ujis,name) values (0x8EA1,'U+FF61 HALFWIDTH IDEOGRAPHIC FULL STOP');
insert into t1 (ujis,name) values (0x8EA2,'U+FF62 HALFWIDTH LEFT CORNER BRACKET');
insert into t1 (ujis,name) values (0x8EA3,'U+FF63 HALFWIDTH RIGHT CORNER BRACKET');
insert into t1 (ujis,name) values (0x8EA4,'U+FF64 HALFWIDTH IDEOGRAPHIC COMMA');
insert into t1 (ujis,name) values (0x8EA5,'U+FF65 HALFWIDTH KATAKANA MIDDLE DOT');
insert into t1 (ujis,name) values (0x8EA6,'U+FF66 HALFWIDTH KATAKANA LETTER WO');
insert into t1 (ujis,name) values (0x8EA7,'U+FF67 HALFWIDTH KATAKANA LETTER SMALL A');
insert into t1 (ujis,name) values (0x8EA8,'U+FF68 HALFWIDTH KATAKANA LETTER SMALL I');
insert into t1 (ujis,name) values (0x8EA9,'U+FF69 HALFWIDTH KATAKANA LETTER SMALL U');
insert into t1 (ujis,name) values (0x8EAA,'U+FF6A HALFWIDTH KATAKANA LETTER SMALL E');
insert into t1 (ujis,name) values (0x8EAB,'U+FF6B HALFWIDTH KATAKANA LETTER SMALL O');
insert into t1 (ujis,name) values (0x8EAC,'U+FF6C HALFWIDTH KATAKANA LETTER SMALL YA');
insert into t1 (ujis,name) values (0x8EAD,'U+FF6D HALFWIDTH KATAKANA LETTER SMALL YU');
insert into t1 (ujis,name) values (0x8EAE,'U+FF6E HALFWIDTH KATAKANA LETTER SMALL YO');
insert into t1 (ujis,name) values (0x8EAF,'U+FF6F HALFWIDTH KATAKANA LETTER SMALL TU');
insert into t1 (ujis,name) values (0x8EB0,'U+FF70 HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK');
insert into t1 (ujis,name) values (0x8EB1,'U+FF71 HALFWIDTH KATAKANA LETTER A');
insert into t1 (ujis,name) values (0x8EB2,'U+FF72 HALFWIDTH KATAKANA LETTER I');
insert into t1 (ujis,name) values (0x8EB3,'U+FF73 HALFWIDTH KATAKANA LETTER U');
insert into t1 (ujis,name) values (0x8EB4,'U+FF74 HALFWIDTH KATAKANA LETTER E');
insert into t1 (ujis,name) values (0x8EB5,'U+FF75 HALFWIDTH KATAKANA LETTER O');
insert into t1 (ujis,name) values (0x8EB6,'U+FF76 HALFWIDTH KATAKANA LETTER KA');
insert into t1 (ujis,name) values (0x8EB7,'U+FF77 HALFWIDTH KATAKANA LETTER KI');
insert into t1 (ujis,name) values (0x8EB8,'U+FF78 HALFWIDTH KATAKANA LETTER KU');
insert into t1 (ujis,name) values (0x8EB9,'U+FF79 HALFWIDTH KATAKANA LETTER KE');
insert into t1 (ujis,name) values (0x8EBA,'U+FF7A HALFWIDTH KATAKANA LETTER KO');
insert into t1 (ujis,name) values (0x8EBB,'U+FF7B HALFWIDTH KATAKANA LETTER SA');
insert into t1 (ujis,name) values (0x8EBC,'U+FF7C HALFWIDTH KATAKANA LETTER SI');
insert into t1 (ujis,name) values (0x8EBD,'U+FF7D HALFWIDTH KATAKANA LETTER SU');
insert into t1 (ujis,name) values (0x8EBE,'U+FF7E HALFWIDTH KATAKANA LETTER SE');
insert into t1 (ujis,name) values (0x8EBF,'U+FF7F HALFWIDTH KATAKANA LETTER SO');
insert into t1 (ujis,name) values (0x8EC0,'U+FF80 HALFWIDTH KATAKANA LETTER TA');
insert into t1 (ujis,name) values (0x8EC1,'U+FF81 HALFWIDTH KATAKANA LETTER TI');
insert into t1 (ujis,name) values (0x8EC2,'U+FF82 HALFWIDTH KATAKANA LETTER TU');
insert into t1 (ujis,name) values (0x8EC3,'U+FF83 HALFWIDTH KATAKANA LETTER TE');
insert into t1 (ujis,name) values (0x8EC4,'U+FF84 HALFWIDTH KATAKANA LETTER TO');
insert into t1 (ujis,name) values (0x8EC5,'U+FF85 HALFWIDTH KATAKANA LETTER NA');
insert into t1 (ujis,name) values (0x8EC6,'U+FF86 HALFWIDTH KATAKANA LETTER NI');
insert into t1 (ujis,name) values (0x8EC7,'U+FF87 HALFWIDTH KATAKANA LETTER NU');
insert into t1 (ujis,name) values (0x8EC8,'U+FF88 HALFWIDTH KATAKANA LETTER NE');
insert into t1 (ujis,name) values (0x8EC9,'U+FF89 HALFWIDTH KATAKANA LETTER NO');
insert into t1 (ujis,name) values (0x8ECA,'U+FF8A HALFWIDTH KATAKANA LETTER HA');
insert into t1 (ujis,name) values (0x8ECB,'U+FF8B HALFWIDTH KATAKANA LETTER HI');
insert into t1 (ujis,name) values (0x8ECC,'U+FF8C HALFWIDTH KATAKANA LETTER HU');
insert into t1 (ujis,name) values (0x8ECD,'U+FF8D HALFWIDTH KATAKANA LETTER HE');
insert into t1 (ujis,name) values (0x8ECE,'U+FF8E HALFWIDTH KATAKANA LETTER HO');
insert into t1 (ujis,name) values (0x8ECF,'U+FF8F HALFWIDTH KATAKANA LETTER MA');
insert into t1 (ujis,name) values (0x8ED0,'U+FF90 HALFWIDTH KATAKANA LETTER MI');
insert into t1 (ujis,name) values (0x8ED1,'U+FF91 HALFWIDTH KATAKANA LETTER MU');
insert into t1 (ujis,name) values (0x8ED2,'U+FF92 HALFWIDTH KATAKANA LETTER ME');
insert into t1 (ujis,name) values (0x8ED3,'U+FF93 HALFWIDTH KATAKANA LETTER MO');
insert into t1 (ujis,name) values (0x8ED4,'U+FF94 HALFWIDTH KATAKANA LETTER YA');
insert into t1 (ujis,name) values (0x8ED5,'U+FF95 HALFWIDTH KATAKANA LETTER YU');
insert into t1 (ujis,name) values (0x8ED6,'U+FF96 HALFWIDTH KATAKANA LETTER YO');
insert into t1 (ujis,name) values (0x8ED7,'U+FF97 HALFWIDTH KATAKANA LETTER RA');
insert into t1 (ujis,name) values (0x8ED8,'U+FF98 HALFWIDTH KATAKANA LETTER RI');
insert into t1 (ujis,name) values (0x8ED9,'U+FF99 HALFWIDTH KATAKANA LETTER RU');
insert into t1 (ujis,name) values (0x8EDA,'U+FF9A HALFWIDTH KATAKANA LETTER RE');
insert into t1 (ujis,name) values (0x8EDB,'U+FF9B HALFWIDTH KATAKANA LETTER RO');
insert into t1 (ujis,name) values (0x8EDC,'U+FF9C HALFWIDTH KATAKANA LETTER WA');
insert into t1 (ujis,name) values (0x8EDD,'U+FF9D HALFWIDTH KATAKANA LETTER N');
insert into t1 (ujis,name) values (0x8EDE,'U+FF9E HALFWIDTH KATAKANA VOICED SOUND MARK');
insert into t1 (ujis,name) values (0x8EDF,'U+FF9F HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK');
#
# A character from JIS-X-0212 (code set 3)
# is represented by three bytes,
# the first being 0x8F,
# the following two in the range 0xA1 - 0xFE.
# ftp://ftp.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/JIS0212.TXT
#
# Fill table t1 with codes [8F][A1..FE][A1..FE] using helper table t2,
# 8836 codes total
#
insert into t1 (ujis) select concat(0x8F,t21.code,t22.code) from t2 t21, t2 t22 order by 1;
update t1 set name='U+02D8 BREVE' where ujis=0x8FA2AF;
update t1 set name='U+02C7 CARON (Mandarin Chinese third tone)' where ujis=0x8FA2B0;
update t1 set name='U+00B8 CEDILLA' where ujis=0x8FA2B1;
update t1 set name='U+02D9 DOT ABOVE (Mandarin Chinese light tone)' where ujis=0x8FA2B2;
update t1 set name='U+02DD DOUBLE ACUTE ACCENT' where ujis=0x8FA2B3;
update t1 set name='U+00AF MACRON' where ujis=0x8FA2B4;
update t1 set name='U+02DB OGONEK' where ujis=0x8FA2B5;
update t1 set name='U+02DA RING ABOVE' where ujis=0x8FA2B6;
update t1 set name='U+007E TILDE' where ujis=0x8FA2B7;
update t1 set name='U+0384 GREEK TONOS' where ujis=0x8FA2B8;
update t1 set name='U+0385 GREEK DIALYTIKA TONOS' where ujis=0x8FA2B9;
update t1 set name='U+00A1 INVERTED EXCLAMATION MARK' where ujis=0x8FA2C2;
update t1 set name='U+00A6 BROKEN BAR' where ujis=0x8FA2C3;
update t1 set name='U+00BF INVERTED QUESTION MARK' where ujis=0x8FA2C4;
update t1 set name='U+00BA MASCULINE ORDINAL INDICATOR' where ujis=0x8FA2EB;
update t1 set name='U+00AA FEMININE ORDINAL INDICATOR' where ujis=0x8FA2EC;
update t1 set name='U+00A9 COPYRIGHT SIGN' where ujis=0x8FA2ED;
update t1 set name='U+00AE REGISTERED SIGN' where ujis=0x8FA2EE;
update t1 set name='U+2122 TRADE MARK SIGN' where ujis=0x8FA2EF;
update t1 set name='U+00A4 CURRENCY SIGN' where ujis=0x8FA2F0;
update t1 set name='U+2116 NUMERO SIGN' where ujis=0x8FA2F1;
update t1 set name='U+0386 GREEK CAPITAL LETTER ALPHA WITH TONOS' where ujis=0x8FA6E1;
update t1 set name='U+0388 GREEK CAPITAL LETTER EPSILON WITH TONOS' where ujis=0x8FA6E2;
update t1 set name='U+0389 GREEK CAPITAL LETTER ETA WITH TONOS' where ujis=0x8FA6E3;
update t1 set name='U+038A GREEK CAPITAL LETTER IOTA WITH TONOS' where ujis=0x8FA6E4;
update t1 set name='U+03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA' where ujis=0x8FA6E5;
update t1 set name='U+038C GREEK CAPITAL LETTER OMICRON WITH TONOS' where ujis=0x8FA6E7;
update t1 set name='U+038E GREEK CAPITAL LETTER UPSILON WITH TONOS' where ujis=0x8FA6E9;
update t1 set name='U+03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA' where ujis=0x8FA6EA;
update t1 set name='U+038F GREEK CAPITAL LETTER OMEGA WITH TONOS' where ujis=0x8FA6EC;
update t1 set name='U+03AC GREEK SMALL LETTER ALPHA WITH TONOS' where ujis=0x8FA6F1;
update t1 set name='U+03AD GREEK SMALL LETTER EPSILON WITH TONOS' where ujis=0x8FA6F2;
update t1 set name='U+03AE GREEK SMALL LETTER ETA WITH TONOS' where ujis=0x8FA6F3;
update t1 set name='U+03AF GREEK SMALL LETTER IOTA WITH TONOS' where ujis=0x8FA6F4;
update t1 set name='U+03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA' where ujis=0x8FA6F5;
update t1 set name='U+0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS' where ujis=0x8FA6F6;
update t1 set name='U+03CC GREEK SMALL LETTER OMICRON WITH TONOS' where ujis=0x8FA6F7;
update t1 set name='U+03C2 GREEK SMALL LETTER FINAL SIGMA' where ujis=0x8FA6F8;
update t1 set name='U+03CD GREEK SMALL LETTER UPSILON WITH TONOS' where ujis=0x8FA6F9;
update t1 set name='U+03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA' where ujis=0x8FA6FA;
update t1 set name='U+03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS' where ujis=0x8FA6FB;
update t1 set name='U+03CE GREEK SMALL LETTER OMEGA WITH TONOS' where ujis=0x8FA6FC;
update t1 set name='U+0402 CYRILLIC CAPITAL LETTER DJE' where ujis=0x8FA7C2;
update t1 set name='U+0403 CYRILLIC CAPITAL LETTER GJE' where ujis=0x8FA7C3;
update t1 set name='U+0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE' where ujis=0x8FA7C4;
update t1 set name='U+0405 CYRILLIC CAPITAL LETTER DZE' where ujis=0x8FA7C5;
update t1 set name='U+0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I' where ujis=0x8FA7C6;
update t1 set name='U+0407 CYRILLIC CAPITAL LETTER YI' where ujis=0x8FA7C7;
update t1 set name='U+0408 CYRILLIC CAPITAL LETTER JE' where ujis=0x8FA7C8;
update t1 set name='U+0409 CYRILLIC CAPITAL LETTER LJE' where ujis=0x8FA7C9;
update t1 set name='U+040A CYRILLIC CAPITAL LETTER NJE' where ujis=0x8FA7CA;
update t1 set name='U+040B CYRILLIC CAPITAL LETTER TSHE' where ujis=0x8FA7CB;
update t1 set name='U+040C CYRILLIC CAPITAL LETTER KJE' where ujis=0x8FA7CC;
update t1 set name='U+040E CYRILLIC CAPITAL LETTER SHORT U' where ujis=0x8FA7CD;
update t1 set name='U+040F CYRILLIC CAPITAL LETTER DZHE' where ujis=0x8FA7CE;
update t1 set name='U+0452 CYRILLIC SMALL LETTER DJE' where ujis=0x8FA7F2;
update t1 set name='U+0453 CYRILLIC SMALL LETTER GJE' where ujis=0x8FA7F3;
update t1 set name='U+0454 CYRILLIC SMALL LETTER UKRAINIAN IE' where ujis=0x8FA7F4;
update t1 set name='U+0455 CYRILLIC SMALL LETTER DZE' where ujis=0x8FA7F5;
update t1 set name='U+0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I' where ujis=0x8FA7F6;
update t1 set name='U+0457 CYRILLIC SMALL LETTER YI' where ujis=0x8FA7F7;
update t1 set name='U+0458 CYRILLIC SMALL LETTER JE' where ujis=0x8FA7F8;
update t1 set name='U+0459 CYRILLIC SMALL LETTER LJE' where ujis=0x8FA7F9;
update t1 set name='U+045A CYRILLIC SMALL LETTER NJE' where ujis=0x8FA7FA;
update t1 set name='U+045B CYRILLIC SMALL LETTER TSHE' where ujis=0x8FA7FB;
update t1 set name='U+045C CYRILLIC SMALL LETTER KJE' where ujis=0x8FA7FC;
update t1 set name='U+045E CYRILLIC SMALL LETTER SHORT U' where ujis=0x8FA7FD;
update t1 set name='U+045F CYRILLIC SMALL LETTER DZHE' where ujis=0x8FA7FE;
update t1 set name='U+00C6 LATIN CAPITAL LIGATURE AE' where ujis=0x8FA9A1;
update t1 set name='U+0110 LATIN CAPITAL LETTER D WITH STROKE' where ujis=0x8FA9A2;
update t1 set name='U+0126 LATIN CAPITAL LETTER H WITH STROKE' where ujis=0x8FA9A4;
update t1 set name='U+0132 LATIN CAPITAL LIGATURE IJ' where ujis=0x8FA9A6;
update t1 set name='U+0141 LATIN CAPITAL LETTER L WITH STROKE' where ujis=0x8FA9A8;
update t1 set name='U+013F LATIN CAPITAL LETTER L WITH MIDDLE DOT' where ujis=0x8FA9A9;
update t1 set name='U+014A LATIN CAPITAL LETTER ENG' where ujis=0x8FA9AB;
update t1 set name='U+00D8 LATIN CAPITAL LETTER O WITH STROKE' where ujis=0x8FA9AC;
update t1 set name='U+0152 LATIN CAPITAL LIGATURE OE' where ujis=0x8FA9AD;
update t1 set name='U+0166 LATIN CAPITAL LETTER T WITH STROKE' where ujis=0x8FA9AF;
update t1 set name='U+00DE LATIN CAPITAL LETTER THORN' where ujis=0x8FA9B0;
update t1 set name='U+00E6 LATIN SMALL LIGATURE AE' where ujis=0x8FA9C1;
update t1 set name='U+0111 LATIN SMALL LETTER D WITH STROKE' where ujis=0x8FA9C2;
update t1 set name='U+00F0 LATIN SMALL LETTER ETH' where ujis=0x8FA9C3;
update t1 set name='U+0127 LATIN SMALL LETTER H WITH STROKE' where ujis=0x8FA9C4;
update t1 set name='U+0131 LATIN SMALL LETTER DOTLESS I' where ujis=0x8FA9C5;
update t1 set name='U+0133 LATIN SMALL LIGATURE IJ' where ujis=0x8FA9C6;
update t1 set name='U+0138 LATIN SMALL LETTER KRA' where ujis=0x8FA9C7;
update t1 set name='U+0142 LATIN SMALL LETTER L WITH STROKE' where ujis=0x8FA9C8;
update t1 set name='U+0140 LATIN SMALL LETTER L WITH MIDDLE DOT' where ujis=0x8FA9C9;
update t1 set name='U+0149 LATIN SMALL LETTER N PRECEDED BY APOSTROPHE' where ujis=0x8FA9CA;
update t1 set name='U+014B LATIN SMALL LETTER ENG' where ujis=0x8FA9CB;
update t1 set name='U+00F8 LATIN SMALL LETTER O WITH STROKE' where ujis=0x8FA9CC;
update t1 set name='U+0153 LATIN SMALL LIGATURE OE' where ujis=0x8FA9CD;
update t1 set name='U+00DF LATIN SMALL LETTER SHARP S' where ujis=0x8FA9CE;
update t1 set name='U+0167 LATIN SMALL LETTER T WITH STROKE' where ujis=0x8FA9CF;
update t1 set name='U+00FE LATIN SMALL LETTER THORN' where ujis=0x8FA9D0;
update t1 set name='U+00C1 LATIN CAPITAL LETTER A WITH ACUTE' where ujis=0x8FAAA1;
update t1 set name='U+00C0 LATIN CAPITAL LETTER A WITH GRAVE' where ujis=0x8FAAA2;
update t1 set name='U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS' where ujis=0x8FAAA3;
update t1 set name='U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX' where ujis=0x8FAAA4;
update t1 set name='U+0102 LATIN CAPITAL LETTER A WITH BREVE' where ujis=0x8FAAA5;
update t1 set name='U+01CD LATIN CAPITAL LETTER A WITH CARON' where ujis=0x8FAAA6;
update t1 set name='U+0100 LATIN CAPITAL LETTER A WITH MACRON' where ujis=0x8FAAA7;
update t1 set name='U+0104 LATIN CAPITAL LETTER A WITH OGONEK' where ujis=0x8FAAA8;
update t1 set name='U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE' where ujis=0x8FAAA9;
update t1 set name='U+00C3 LATIN CAPITAL LETTER A WITH TILDE' where ujis=0x8FAAAA;
update t1 set name='U+0106 LATIN CAPITAL LETTER C WITH ACUTE' where ujis=0x8FAAAB;
update t1 set name='U+0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX' where ujis=0x8FAAAC;
update t1 set name='U+010C LATIN CAPITAL LETTER C WITH CARON' where ujis=0x8FAAAD;
update t1 set name='U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA' where ujis=0x8FAAAE;
update t1 set name='U+010A LATIN CAPITAL LETTER C WITH DOT ABOVE' where ujis=0x8FAAAF;
update t1 set name='U+010E LATIN CAPITAL LETTER D WITH CARON' where ujis=0x8FAAB0;
update t1 set name='U+00C9 LATIN CAPITAL LETTER E WITH ACUTE' where ujis=0x8FAAB1;
update t1 set name='U+00C8 LATIN CAPITAL LETTER E WITH GRAVE' where ujis=0x8FAAB2;
update t1 set name='U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS' where ujis=0x8FAAB3;
update t1 set name='U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX' where ujis=0x8FAAB4;
update t1 set name='U+011A LATIN CAPITAL LETTER E WITH CARON' where ujis=0x8FAAB5;
update t1 set name='U+0116 LATIN CAPITAL LETTER E WITH DOT ABOVE' where ujis=0x8FAAB6;
update t1 set name='U+0112 LATIN CAPITAL LETTER E WITH MACRON' where ujis=0x8FAAB7;
update t1 set name='U+0118 LATIN CAPITAL LETTER E WITH OGONEK' where ujis=0x8FAAB8;
update t1 set name='U+011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX' where ujis=0x8FAABA;
update t1 set name='U+011E LATIN CAPITAL LETTER G WITH BREVE' where ujis=0x8FAABB;
update t1 set name='U+0122 LATIN CAPITAL LETTER G WITH CEDILLA' where ujis=0x8FAABC;
update t1 set name='U+0120 LATIN CAPITAL LETTER G WITH DOT ABOVE' where ujis=0x8FAABD;
update t1 set name='U+0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX' where ujis=0x8FAABE;
update t1 set name='U+00CD LATIN CAPITAL LETTER I WITH ACUTE' where ujis=0x8FAABF;
update t1 set name='U+00CC LATIN CAPITAL LETTER I WITH GRAVE' where ujis=0x8FAAC0;
update t1 set name='U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS' where ujis=0x8FAAC1;
update t1 set name='U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX' where ujis=0x8FAAC2;
update t1 set name='U+01CF LATIN CAPITAL LETTER I WITH CARON' where ujis=0x8FAAC3;
update t1 set name='U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE' where ujis=0x8FAAC4;
update t1 set name='U+012A LATIN CAPITAL LETTER I WITH MACRON' where ujis=0x8FAAC5;
update t1 set name='U+012E LATIN CAPITAL LETTER I WITH OGONEK' where ujis=0x8FAAC6;
update t1 set name='U+0128 LATIN CAPITAL LETTER I WITH TILDE' where ujis=0x8FAAC7;
update t1 set name='U+0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX' where ujis=0x8FAAC8;
update t1 set name='U+0136 LATIN CAPITAL LETTER K WITH CEDILLA' where ujis=0x8FAAC9;
update t1 set name='U+0139 LATIN CAPITAL LETTER L WITH ACUTE' where ujis=0x8FAACA;
update t1 set name='U+013D LATIN CAPITAL LETTER L WITH CARON' where ujis=0x8FAACB;
update t1 set name='U+013B LATIN CAPITAL LETTER L WITH CEDILLA' where ujis=0x8FAACC;
update t1 set name='U+0143 LATIN CAPITAL LETTER N WITH ACUTE' where ujis=0x8FAACD;
update t1 set name='U+0147 LATIN CAPITAL LETTER N WITH CARON' where ujis=0x8FAACE;
update t1 set name='U+0145 LATIN CAPITAL LETTER N WITH CEDILLA' where ujis=0x8FAACF;
update t1 set name='U+00D1 LATIN CAPITAL LETTER N WITH TILDE' where ujis=0x8FAAD0;
update t1 set name='U+00D3 LATIN CAPITAL LETTER O WITH ACUTE' where ujis=0x8FAAD1;
update t1 set name='U+00D2 LATIN CAPITAL LETTER O WITH GRAVE' where ujis=0x8FAAD2;
update t1 set name='U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS' where ujis=0x8FAAD3;
update t1 set name='U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX' where ujis=0x8FAAD4;
update t1 set name='U+01D1 LATIN CAPITAL LETTER O WITH CARON' where ujis=0x8FAAD5;
update t1 set name='U+0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE' where ujis=0x8FAAD6;
update t1 set name='U+014C LATIN CAPITAL LETTER O WITH MACRON' where ujis=0x8FAAD7;
update t1 set name='U+00D5 LATIN CAPITAL LETTER O WITH TILDE' where ujis=0x8FAAD8;
update t1 set name='U+0154 LATIN CAPITAL LETTER R WITH ACUTE' where ujis=0x8FAAD9;
update t1 set name='U+0158 LATIN CAPITAL LETTER R WITH CARON' where ujis=0x8FAADA;
update t1 set name='U+0156 LATIN CAPITAL LETTER R WITH CEDILLA' where ujis=0x8FAADB;
update t1 set name='U+015A LATIN CAPITAL LETTER S WITH ACUTE' where ujis=0x8FAADC;
update t1 set name='U+015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX' where ujis=0x8FAADD;
update t1 set name='U+0160 LATIN CAPITAL LETTER S WITH CARON' where ujis=0x8FAADE;
update t1 set name='U+015E LATIN CAPITAL LETTER S WITH CEDILLA' where ujis=0x8FAADF;
update t1 set name='U+0164 LATIN CAPITAL LETTER T WITH CARON' where ujis=0x8FAAE0;
update t1 set name='U+0162 LATIN CAPITAL LETTER T WITH CEDILLA' where ujis=0x8FAAE1;
update t1 set name='U+00DA LATIN CAPITAL LETTER U WITH ACUTE' where ujis=0x8FAAE2;
update t1 set name='U+00D9 LATIN CAPITAL LETTER U WITH GRAVE' where ujis=0x8FAAE3;
update t1 set name='U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS' where ujis=0x8FAAE4;
update t1 set name='U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX' where ujis=0x8FAAE5;
update t1 set name='U+016C LATIN CAPITAL LETTER U WITH BREVE' where ujis=0x8FAAE6;
update t1 set name='U+01D3 LATIN CAPITAL LETTER U WITH CARON' where ujis=0x8FAAE7;
update t1 set name='U+0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE' where ujis=0x8FAAE8;
update t1 set name='U+016A LATIN CAPITAL LETTER U WITH MACRON' where ujis=0x8FAAE9;
update t1 set name='U+0172 LATIN CAPITAL LETTER U WITH OGONEK' where ujis=0x8FAAEA;
update t1 set name='U+016E LATIN CAPITAL LETTER U WITH RING ABOVE' where ujis=0x8FAAEB;
update t1 set name='U+0168 LATIN CAPITAL LETTER U WITH TILDE' where ujis=0x8FAAEC;
update t1 set name='U+01D7 LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE' where ujis=0x8FAAED;
update t1 set name='U+01DB LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE' where ujis=0x8FAAEE;
update t1 set name='U+01D9 LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON' where ujis=0x8FAAEF;
update t1 set name='U+01D5 LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON' where ujis=0x8FAAF0;
update t1 set name='U+0174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX' where ujis=0x8FAAF1;
update t1 set name='U+00DD LATIN CAPITAL LETTER Y WITH ACUTE' where ujis=0x8FAAF2;
update t1 set name='U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS' where ujis=0x8FAAF3;
update t1 set name='U+0176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX' where ujis=0x8FAAF4;
update t1 set name='U+0179 LATIN CAPITAL LETTER Z WITH ACUTE' where ujis=0x8FAAF5;
update t1 set name='U+017D LATIN CAPITAL LETTER Z WITH CARON' where ujis=0x8FAAF6;
update t1 set name='U+017B LATIN CAPITAL LETTER Z WITH DOT ABOVE' where ujis=0x8FAAF7;
update t1 set name='U+00E1 LATIN SMALL LETTER A WITH ACUTE' where ujis=0x8FABA1;
update t1 set name='U+00E0 LATIN SMALL LETTER A WITH GRAVE' where ujis=0x8FABA2;
update t1 set name='U+00E4 LATIN SMALL LETTER A WITH DIAERESIS' where ujis=0x8FABA3;
update t1 set name='U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX' where ujis=0x8FABA4;
update t1 set name='U+0103 LATIN SMALL LETTER A WITH BREVE' where ujis=0x8FABA5;
update t1 set name='U+01CE LATIN SMALL LETTER A WITH CARON' where ujis=0x8FABA6;
update t1 set name='U+0101 LATIN SMALL LETTER A WITH MACRON' where ujis=0x8FABA7;
update t1 set name='U+0105 LATIN SMALL LETTER A WITH OGONEK' where ujis=0x8FABA8;
update t1 set name='U+00E5 LATIN SMALL LETTER A WITH RING ABOVE' where ujis=0x8FABA9;
update t1 set name='U+00E3 LATIN SMALL LETTER A WITH TILDE' where ujis=0x8FABAA;
update t1 set name='U+0107 LATIN SMALL LETTER C WITH ACUTE' where ujis=0x8FABAB;
update t1 set name='U+0109 LATIN SMALL LETTER C WITH CIRCUMFLEX' where ujis=0x8FABAC;
update t1 set name='U+010D LATIN SMALL LETTER C WITH CARON' where ujis=0x8FABAD;
update t1 set name='U+00E7 LATIN SMALL LETTER C WITH CEDILLA' where ujis=0x8FABAE;
update t1 set name='U+010B LATIN SMALL LETTER C WITH DOT ABOVE' where ujis=0x8FABAF;
update t1 set name='U+010F LATIN SMALL LETTER D WITH CARON' where ujis=0x8FABB0;
update t1 set name='U+00E9 LATIN SMALL LETTER E WITH ACUTE' where ujis=0x8FABB1;
update t1 set name='U+00E8 LATIN SMALL LETTER E WITH GRAVE' where ujis=0x8FABB2;
update t1 set name='U+00EB LATIN SMALL LETTER E WITH DIAERESIS' where ujis=0x8FABB3;
update t1 set name='U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX' where ujis=0x8FABB4;
update t1 set name='U+011B LATIN SMALL LETTER E WITH CARON' where ujis=0x8FABB5;
update t1 set name='U+0117 LATIN SMALL LETTER E WITH DOT ABOVE' where ujis=0x8FABB6;
update t1 set name='U+0113 LATIN SMALL LETTER E WITH MACRON' where ujis=0x8FABB7;
update t1 set name='U+0119 LATIN SMALL LETTER E WITH OGONEK' where ujis=0x8FABB8;
update t1 set name='U+01F5 LATIN SMALL LETTER G WITH ACUTE' where ujis=0x8FABB9;
update t1 set name='U+011D LATIN SMALL LETTER G WITH CIRCUMFLEX' where ujis=0x8FABBA;
update t1 set name='U+011F LATIN SMALL LETTER G WITH BREVE' where ujis=0x8FABBB;
update t1 set name='U+0121 LATIN SMALL LETTER G WITH DOT ABOVE' where ujis=0x8FABBD;
update t1 set name='U+0125 LATIN SMALL LETTER H WITH CIRCUMFLEX' where ujis=0x8FABBE;
update t1 set name='U+00ED LATIN SMALL LETTER I WITH ACUTE' where ujis=0x8FABBF;
update t1 set name='U+00EC LATIN SMALL LETTER I WITH GRAVE' where ujis=0x8FABC0;
update t1 set name='U+00EF LATIN SMALL LETTER I WITH DIAERESIS' where ujis=0x8FABC1;
update t1 set name='U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX' where ujis=0x8FABC2;
update t1 set name='U+01D0 LATIN SMALL LETTER I WITH CARON' where ujis=0x8FABC3;
update t1 set name='U+012B LATIN SMALL LETTER I WITH MACRON' where ujis=0x8FABC5;
update t1 set name='U+012F LATIN SMALL LETTER I WITH OGONEK' where ujis=0x8FABC6;
update t1 set name='U+0129 LATIN SMALL LETTER I WITH TILDE' where ujis=0x8FABC7;
update t1 set name='U+0135 LATIN SMALL LETTER J WITH CIRCUMFLEX' where ujis=0x8FABC8;
update t1 set name='U+0137 LATIN SMALL LETTER K WITH CEDILLA' where ujis=0x8FABC9;
update t1 set name='U+013A LATIN SMALL LETTER L WITH ACUTE' where ujis=0x8FABCA;
update t1 set name='U+013E LATIN SMALL LETTER L WITH CARON' where ujis=0x8FABCB;
update t1 set name='U+013C LATIN SMALL LETTER L WITH CEDILLA' where ujis=0x8FABCC;
update t1 set name='U+0144 LATIN SMALL LETTER N WITH ACUTE' where ujis=0x8FABCD;
update t1 set name='U+0148 LATIN SMALL LETTER N WITH CARON' where ujis=0x8FABCE;
update t1 set name='U+0146 LATIN SMALL LETTER N WITH CEDILLA' where ujis=0x8FABCF;
update t1 set name='U+00F1 LATIN SMALL LETTER N WITH TILDE' where ujis=0x8FABD0;
update t1 set name='U+00F3 LATIN SMALL LETTER O WITH ACUTE' where ujis=0x8FABD1;
update t1 set name='U+00F2 LATIN SMALL LETTER O WITH GRAVE' where ujis=0x8FABD2;
update t1 set name='U+00F6 LATIN SMALL LETTER O WITH DIAERESIS' where ujis=0x8FABD3;
update t1 set name='U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX' where ujis=0x8FABD4;
update t1 set name='U+01D2 LATIN SMALL LETTER O WITH CARON' where ujis=0x8FABD5;
update t1 set name='U+0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE' where ujis=0x8FABD6;
update t1 set name='U+014D LATIN SMALL LETTER O WITH MACRON' where ujis=0x8FABD7;
update t1 set name='U+00F5 LATIN SMALL LETTER O WITH TILDE' where ujis=0x8FABD8;
update t1 set name='U+0155 LATIN SMALL LETTER R WITH ACUTE' where ujis=0x8FABD9;
update t1 set name='U+0159 LATIN SMALL LETTER R WITH CARON' where ujis=0x8FABDA;
update t1 set name='U+0157 LATIN SMALL LETTER R WITH CEDILLA' where ujis=0x8FABDB;
update t1 set name='U+015B LATIN SMALL LETTER S WITH ACUTE' where ujis=0x8FABDC;
update t1 set name='U+015D LATIN SMALL LETTER S WITH CIRCUMFLEX' where ujis=0x8FABDD;
update t1 set name='U+0161 LATIN SMALL LETTER S WITH CARON' where ujis=0x8FABDE;
update t1 set name='U+015F LATIN SMALL LETTER S WITH CEDILLA' where ujis=0x8FABDF;
update t1 set name='U+0165 LATIN SMALL LETTER T WITH CARON' where ujis=0x8FABE0;
update t1 set name='U+0163 LATIN SMALL LETTER T WITH CEDILLA' where ujis=0x8FABE1;
update t1 set name='U+00FA LATIN SMALL LETTER U WITH ACUTE' where ujis=0x8FABE2;
update t1 set name='U+00F9 LATIN SMALL LETTER U WITH GRAVE' where ujis=0x8FABE3;
update t1 set name='U+00FC LATIN SMALL LETTER U WITH DIAERESIS' where ujis=0x8FABE4;
update t1 set name='U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX' where ujis=0x8FABE5;
update t1 set name='U+016D LATIN SMALL LETTER U WITH BREVE' where ujis=0x8FABE6;
update t1 set name='U+01D4 LATIN SMALL LETTER U WITH CARON' where ujis=0x8FABE7;
update t1 set name='U+0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE' where ujis=0x8FABE8;
update t1 set name='U+016B LATIN SMALL LETTER U WITH MACRON' where ujis=0x8FABE9;
update t1 set name='U+0173 LATIN SMALL LETTER U WITH OGONEK' where ujis=0x8FABEA;
update t1 set name='U+016F LATIN SMALL LETTER U WITH RING ABOVE' where ujis=0x8FABEB;
update t1 set name='U+0169 LATIN SMALL LETTER U WITH TILDE' where ujis=0x8FABEC;
update t1 set name='U+01D8 LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE' where ujis=0x8FABED;
update t1 set name='U+01DC LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE' where ujis=0x8FABEE;
update t1 set name='U+01DA LATIN SMALL LETTER U WITH DIAERESIS AND CARON' where ujis=0x8FABEF;
update t1 set name='U+01D6 LATIN SMALL LETTER U WITH DIAERESIS AND MACRON' where ujis=0x8FABF0;
update t1 set name='U+0175 LATIN SMALL LETTER W WITH CIRCUMFLEX' where ujis=0x8FABF1;
update t1 set name='U+00FD LATIN SMALL LETTER Y WITH ACUTE' where ujis=0x8FABF2;
update t1 set name='U+00FF LATIN SMALL LETTER Y WITH DIAERESIS' where ujis=0x8FABF3;
update t1 set name='U+0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX' where ujis=0x8FABF4;
update t1 set name='U+017A LATIN SMALL LETTER Z WITH ACUTE' where ujis=0x8FABF5;
update t1 set name='U+017E LATIN SMALL LETTER Z WITH CARON' where ujis=0x8FABF6;
update t1 set name='U+017C LATIN SMALL LETTER Z WITH DOT ABOVE' where ujis=0x8FABF7;
# [8F][B0..BF][A1..FE] - all 16*94=1504 codes assigned
update t1 set name='<CJK>' where ujis >= 0x8FB0A1 AND ujis <= 0x8FBFFE;
# [8F][C0..CF][A1..FE] - all 16*94=1504 codes assigned
update t1 set name='<CJK>' where ujis >= 0x8FC0A1 AND ujis <= 0x8FCFFE;
# [8F][D0..DF][A1..FE] - all 16*94=1504 codes assigned
update t1 set name='<CJK>' where ujis >= 0x8FD0A1 AND ujis <= 0x8FDFFE;
# [8F][E0..EC][A1..FE] - all 13*94=1222 codes assigned
update t1 set name='<CJK>' where ujis >= 0x8FE0A1 AND ujis <= 0x8FECFE;
#
update t1 set name='U+9EF8 <CJK>' where ujis=0x8FEDA1;
update t1 set name='U+9EFF <CJK>' where ujis=0x8FEDA2;
update t1 set name='U+9F02 <CJK>' where ujis=0x8FEDA3;
update t1 set name='U+9F03 <CJK>' where ujis=0x8FEDA4;
update t1 set name='U+9F09 <CJK>' where ujis=0x8FEDA5;
update t1 set name='U+9F0F <CJK>' where ujis=0x8FEDA6;
update t1 set name='U+9F10 <CJK>' where ujis=0x8FEDA7;
update t1 set name='U+9F11 <CJK>' where ujis=0x8FEDA8;
update t1 set name='U+9F12 <CJK>' where ujis=0x8FEDA9;
update t1 set name='U+9F14 <CJK>' where ujis=0x8FEDAA;
update t1 set name='U+9F16 <CJK>' where ujis=0x8FEDAB;
update t1 set name='U+9F17 <CJK>' where ujis=0x8FEDAC;
update t1 set name='U+9F19 <CJK>' where ujis=0x8FEDAD;
update t1 set name='U+9F1A <CJK>' where ujis=0x8FEDAE;
update t1 set name='U+9F1B <CJK>' where ujis=0x8FEDAF;
update t1 set name='U+9F1F <CJK>' where ujis=0x8FEDB0;
update t1 set name='U+9F22 <CJK>' where ujis=0x8FEDB1;
update t1 set name='U+9F26 <CJK>' where ujis=0x8FEDB2;
update t1 set name='U+9F2A <CJK>' where ujis=0x8FEDB3;
update t1 set name='U+9F2B <CJK>' where ujis=0x8FEDB4;
update t1 set name='U+9F2F <CJK>' where ujis=0x8FEDB5;
update t1 set name='U+9F31 <CJK>' where ujis=0x8FEDB6;
update t1 set name='U+9F32 <CJK>' where ujis=0x8FEDB7;
update t1 set name='U+9F34 <CJK>' where ujis=0x8FEDB8;
update t1 set name='U+9F37 <CJK>' where ujis=0x8FEDB9;
update t1 set name='U+9F39 <CJK>' where ujis=0x8FEDBA;
update t1 set name='U+9F3A <CJK>' where ujis=0x8FEDBB;
update t1 set name='U+9F3C <CJK>' where ujis=0x8FEDBC;
update t1 set name='U+9F3D <CJK>' where ujis=0x8FEDBD;
update t1 set name='U+9F3F <CJK>' where ujis=0x8FEDBE;
update t1 set name='U+9F41 <CJK>' where ujis=0x8FEDBF;
update t1 set name='U+9F43 <CJK>' where ujis=0x8FEDC0;
update t1 set name='U+9F44 <CJK>' where ujis=0x8FEDC1;
update t1 set name='U+9F45 <CJK>' where ujis=0x8FEDC2;
update t1 set name='U+9F46 <CJK>' where ujis=0x8FEDC3;
update t1 set name='U+9F47 <CJK>' where ujis=0x8FEDC4;
update t1 set name='U+9F53 <CJK>' where ujis=0x8FEDC5;
update t1 set name='U+9F55 <CJK>' where ujis=0x8FEDC6;
update t1 set name='U+9F56 <CJK>' where ujis=0x8FEDC7;
update t1 set name='U+9F57 <CJK>' where ujis=0x8FEDC8;
update t1 set name='U+9F58 <CJK>' where ujis=0x8FEDC9;
update t1 set name='U+9F5A <CJK>' where ujis=0x8FEDCA;
update t1 set name='U+9F5D <CJK>' where ujis=0x8FEDCB;
update t1 set name='U+9F5E <CJK>' where ujis=0x8FEDCC;
update t1 set name='U+9F68 <CJK>' where ujis=0x8FEDCD;
update t1 set name='U+9F69 <CJK>' where ujis=0x8FEDCE;
update t1 set name='U+9F6D <CJK>' where ujis=0x8FEDCF;
update t1 set name='U+9F6E <CJK>' where ujis=0x8FEDD0;
update t1 set name='U+9F6F <CJK>' where ujis=0x8FEDD1;
update t1 set name='U+9F70 <CJK>' where ujis=0x8FEDD2;
update t1 set name='U+9F71 <CJK>' where ujis=0x8FEDD3;
update t1 set name='U+9F73 <CJK>' where ujis=0x8FEDD4;
update t1 set name='U+9F75 <CJK>' where ujis=0x8FEDD5;
update t1 set name='U+9F7A <CJK>' where ujis=0x8FEDD6;
update t1 set name='U+9F7D <CJK>' where ujis=0x8FEDD7;
update t1 set name='U+9F8F <CJK>' where ujis=0x8FEDD8;
update t1 set name='U+9F90 <CJK>' where ujis=0x8FEDD9;
update t1 set name='U+9F91 <CJK>' where ujis=0x8FEDDA;
update t1 set name='U+9F92 <CJK>' where ujis=0x8FEDDB;
update t1 set name='U+9F94 <CJK>' where ujis=0x8FEDDC;
update t1 set name='U+9F96 <CJK>' where ujis=0x8FEDDD;
update t1 set name='U+9F97 <CJK>' where ujis=0x8FEDDE;
update t1 set name='U+9F9E <CJK>' where ujis=0x8FEDDF;
update t1 set name='U+9FA1 <CJK>' where ujis=0x8FEDE0;
update t1 set name='U+9FA2 <CJK>' where ujis=0x8FEDE1;
update t1 set name='U+9FA3 <CJK>' where ujis=0x8FEDE2;
update t1 set name='U+9FA5 <CJK>' where ujis=0x8FEDE3;
# [8F][F5..FE][A1..FE] - User defined range
update t1 set name='User defined range #2' where ujis >= 0x8FF5A1 and ujis <= 0x8FFEFE;
# Other characters are not assigned
update t1 set name='UNASSIGNED' where name='';
update t1 set ucs2=ujis, ujis2=ucs2;
--echo Characters with safe Unicode round trip
select hex(ujis), hex(ucs2), hex(ujis2), name from t1 where ujis=ujis2 order by ujis;
--echo Characters with unsafe Unicode round trip
select hex(ujis), hex(ucs2), hex(ujis2), name from t1 where ujis<>ujis2 order by ujis;
drop table t1;
drop table t2;
#
# Tricky characters, which have different mapping
# in various euc-jp versions. See WL#1820 for details.
#
create table t1 (
ujis varchar(1) character set ujis,
name varchar(64),
ucs2 varchar(1) character set ucs2,
ujis2 varchar(1) character set ujis
);
insert into t1 (ujis,name) values (0x5C, 'U+005C REVERSE SOLIDUS');
insert into t1 (ujis,name) values (0x7E, 'U+007E TILDE');
insert into t1 (ujis,name) values (0xA1B1, 'U+FFE3 FULLWIDTH MACRON');
insert into t1 (ujis,name) values (0xA1BD, 'U+2015 HORIZONTAL BAR');
insert into t1 (ujis,name) values (0xA1C0, 'U+005C REVERSE SOLIDUS');
insert into t1 (ujis,name) values (0xA1C1, 'U+301C WAVE DASH');
insert into t1 (ujis,name) values (0xA1C2, 'U+2016 DOUBLE VERTICAL LINE');
insert into t1 (ujis,name) values (0xA1DD, 'U+2212 MINUS SIGN');
insert into t1 (ujis,name) values (0xA1F1, 'U+00A2 CENT SIGN');
insert into t1 (ujis,name) values (0xA1F2, 'U+00A3 POUND SIGN');
insert into t1 (ujis,name) values (0xA1EF, 'U+FFE5 FULLWIDTH YEN SIGN');
insert into t1 (ujis,name) values (0xA2CC, 'U+00AC NOT SIGN');
insert into t1 (ujis,name) values (0x8FA2B7, 'U+007E TILDE');
insert into t1 (ujis,name) values (0x8FA2C3, 'U+00A6 BROKEN BAR');
update t1 set ucs2=ujis, ujis2=ucs2;
select hex(ujis), hex(ucs2), hex(ujis2), name from t1;
drop table t1;
#
# Unicode characters which are not in x-eucjp-unicode-0.9
#
create table t1 (
ujis char(1) character set ujis,
ucs2 char(1) character set ucs2,
name char(64)
);
insert into t1 (ucs2,name) values (0x00A5,'U+00A5 YEN SIGN');
insert into t1 (ucs2,name) values (0x2014,'U+2014 EM DASH');
insert into t1 (ucs2,name) values (0x203E,'U+203E OVERLINE');
insert into t1 (ucs2,name) values (0x2225,'U+2225 PARALLEL TO');
insert into t1 (ucs2,name) values (0xFF0D,'U+FF0D FULLWIDTH HYPHEN-MINUS');
insert into t1 (ucs2,name) values (0xFF3C,'U+FF3C FULLWIDTH REVERSE SOLIDUS');
insert into t1 (ucs2,name) values (0xFF5E,'U+FF5E FULLWIDTH TILDE');
insert into t1 (ucs2,name) values (0xFFE0,'U+FFE0 FULLWIDTH CENT SIGN');
insert into t1 (ucs2,name) values (0xFFE1,'U+FFE1 FULLWIDTH POUND SIGN');
insert into t1 (ucs2,name) values (0xFFE2,'U+FFE2 FULLWIDTH NOT SIGN');
insert into t1 (ucs2,name) values (0xFFE4,'U+FFE4 FULLWIDTH BROKEN BAR');
update t1 set ujis=ucs2;
select hex(ucs2),hex(ujis),name from t1 order by name;
drop table t1;
--echo End of 5.1 tests
......@@ -5911,6 +5911,7 @@ void Field_datetime::sql_type(String &res) const
well_formed_error_pos - where not well formed data was first met
cannot_convert_error_pos - where a not-convertable character was first met
end - end of the string
cs - character set of the string
NOTES
As of version 5.0 both cases return the same error:
......@@ -5930,7 +5931,8 @@ static bool
check_string_copy_error(Field_str *field,
const char *well_formed_error_pos,
const char *cannot_convert_error_pos,
const char *end)
const char *end,
CHARSET_INFO *cs)
{
const char *pos, *end_orig;
char tmp[64], *t;
......@@ -5944,8 +5946,18 @@ check_string_copy_error(Field_str *field,
for (t= tmp; pos < end; pos++)
{
/*
If the source string is ASCII compatible (mbminlen==1)
and the source character is in ASCII printable range (0x20..0x7F),
then display the character as is.
Otherwise, if the source string is not ASCII compatible (e.g. UCS2),
or the source character is not in the printable range,
then print the character using HEX notation.
*/
if (((unsigned char) *pos) >= 0x20 &&
((unsigned char) *pos) <= 0x7F)
((unsigned char) *pos) <= 0x7F &&
cs->mbminlen == 1)
{
*t++= *pos;
}
......@@ -6027,7 +6039,7 @@ int Field_string::store(const char *from,uint length,CHARSET_INFO *cs)
field_charset->pad_char);
if (check_string_copy_error(this, well_formed_error_pos,
cannot_convert_error_pos, from + length))
cannot_convert_error_pos, from + length, cs))
return 2;
/*
......@@ -6462,7 +6474,7 @@ int Field_varstring::store(const char *from,uint length,CHARSET_INFO *cs)
int2store(ptr, copy_length);
if (check_string_copy_error(this, well_formed_error_pos,
cannot_convert_error_pos, from + length))
cannot_convert_error_pos, from + length, cs))
return 2;
// Check if we lost something other than just trailing spaces
......@@ -7144,7 +7156,7 @@ int Field_blob::store(const char *from,uint length,CHARSET_INFO *cs)
bmove(ptr+packlength,(char*) &tmp,sizeof(char*));
if (check_string_copy_error(this, well_formed_error_pos,
cannot_convert_error_pos, from + length))
cannot_convert_error_pos, from + length, cs))
return 2;
if (from_end_pos < from + length)
......
......@@ -264,18 +264,6 @@ my_wc_mb_jisx0201(CHARSET_INFO *cs __attribute__((unused)),
return 1;
}
if (wc == 0x00A5)
{
*s = 0x5C;
return 1;
}
if (wc == 0x203E)
{
*s = 0x7E;
return 1;
}
return MY_CS_ILUNI;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment