1/************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28/* ======================================================================= */ 29 30/* This file contain the information tables for all japanese charsets: */ 31/* SJIS, MS932, APPLE_JAPANESE, EUC_JP, JIS-X-201, JIS-X-208, JIS-X-212 */ 32 33/* ======================================================================= */ 34 35static ImplDBCSToUniLeadTab const aSJISUniLeadTab[256] = 36{ 37 { 0x0000, 0, 0, NULL }, /* 0x00 */ 38 { 0x0001, 0, 0, NULL }, /* 0x01 */ 39 { 0x0002, 0, 0, NULL }, /* 0x02 */ 40 { 0x0003, 0, 0, NULL }, /* 0x03 */ 41 { 0x0004, 0, 0, NULL }, /* 0x04 */ 42 { 0x0005, 0, 0, NULL }, /* 0x05 */ 43 { 0x0006, 0, 0, NULL }, /* 0x06 */ 44 { 0x0007, 0, 0, NULL }, /* 0x07 */ 45 { 0x0008, 0, 0, NULL }, /* 0x08 */ 46 { 0x0009, 0, 0, NULL }, /* 0x09 */ 47 { 0x000A, 0, 0, NULL }, /* 0x0A */ 48 { 0x000B, 0, 0, NULL }, /* 0x0B */ 49 { 0x000C, 0, 0, NULL }, /* 0x0C */ 50 { 0x000D, 0, 0, NULL }, /* 0x0D */ 51 { 0x000E, 0, 0, NULL }, /* 0x0E */ 52 { 0x000F, 0, 0, NULL }, /* 0x0F */ 53 { 0x0010, 0, 0, NULL }, /* 0x10 */ 54 { 0x0011, 0, 0, NULL }, /* 0x11 */ 55 { 0x0012, 0, 0, NULL }, /* 0x12 */ 56 { 0x0013, 0, 0, NULL }, /* 0x13 */ 57 { 0x0014, 0, 0, NULL }, /* 0x14 */ 58 { 0x0015, 0, 0, NULL }, /* 0x15 */ 59 { 0x0016, 0, 0, NULL }, /* 0x16 */ 60 { 0x0017, 0, 0, NULL }, /* 0x17 */ 61 { 0x0018, 0, 0, NULL }, /* 0x18 */ 62 { 0x0019, 0, 0, NULL }, /* 0x19 */ 63 { 0x001A, 0, 0, NULL }, /* 0x1A */ 64 { 0x001B, 0, 0, NULL }, /* 0x1B */ 65 { 0x001C, 0, 0, NULL }, /* 0x1C */ 66 { 0x001D, 0, 0, NULL }, /* 0x1D */ 67 { 0x001E, 0, 0, NULL }, /* 0x1E */ 68 { 0x001F, 0, 0, NULL }, /* 0x1F */ 69 { 0x0020, 0, 0, NULL }, /* 0x20 */ 70 { 0x0021, 0, 0, NULL }, /* 0x21 */ 71 { 0x0022, 0, 0, NULL }, /* 0x22 */ 72 { 0x0023, 0, 0, NULL }, /* 0x23 */ 73 { 0x0024, 0, 0, NULL }, /* 0x24 */ 74 { 0x0025, 0, 0, NULL }, /* 0x25 */ 75 { 0x0026, 0, 0, NULL }, /* 0x26 */ 76 { 0x0027, 0, 0, NULL }, /* 0x27 */ 77 { 0x0028, 0, 0, NULL }, /* 0x28 */ 78 { 0x0029, 0, 0, NULL }, /* 0x29 */ 79 { 0x002A, 0, 0, NULL }, /* 0x2A */ 80 { 0x002B, 0, 0, NULL }, /* 0x2B */ 81 { 0x002C, 0, 0, NULL }, /* 0x2C */ 82 { 0x002D, 0, 0, NULL }, /* 0x2D */ 83 { 0x002E, 0, 0, NULL }, /* 0x2E */ 84 { 0x002F, 0, 0, NULL }, /* 0x2F */ 85 { 0x0030, 0, 0, NULL }, /* 0x30 */ 86 { 0x0031, 0, 0, NULL }, /* 0x31 */ 87 { 0x0032, 0, 0, NULL }, /* 0x32 */ 88 { 0x0033, 0, 0, NULL }, /* 0x33 */ 89 { 0x0034, 0, 0, NULL }, /* 0x34 */ 90 { 0x0035, 0, 0, NULL }, /* 0x35 */ 91 { 0x0036, 0, 0, NULL }, /* 0x36 */ 92 { 0x0037, 0, 0, NULL }, /* 0x37 */ 93 { 0x0038, 0, 0, NULL }, /* 0x38 */ 94 { 0x0039, 0, 0, NULL }, /* 0x39 */ 95 { 0x003A, 0, 0, NULL }, /* 0x3A */ 96 { 0x003B, 0, 0, NULL }, /* 0x3B */ 97 { 0x003C, 0, 0, NULL }, /* 0x3C */ 98 { 0x003D, 0, 0, NULL }, /* 0x3D */ 99 { 0x003E, 0, 0, NULL }, /* 0x3E */ 100 { 0x003F, 0, 0, NULL }, /* 0x3F */ 101 { 0x0040, 0, 0, NULL }, /* 0x40 */ 102 { 0x0041, 0, 0, NULL }, /* 0x41 */ 103 { 0x0042, 0, 0, NULL }, /* 0x42 */ 104 { 0x0043, 0, 0, NULL }, /* 0x43 */ 105 { 0x0044, 0, 0, NULL }, /* 0x44 */ 106 { 0x0045, 0, 0, NULL }, /* 0x45 */ 107 { 0x0046, 0, 0, NULL }, /* 0x46 */ 108 { 0x0047, 0, 0, NULL }, /* 0x47 */ 109 { 0x0048, 0, 0, NULL }, /* 0x48 */ 110 { 0x0049, 0, 0, NULL }, /* 0x49 */ 111 { 0x004A, 0, 0, NULL }, /* 0x4A */ 112 { 0x004B, 0, 0, NULL }, /* 0x4B */ 113 { 0x004C, 0, 0, NULL }, /* 0x4C */ 114 { 0x004D, 0, 0, NULL }, /* 0x4D */ 115 { 0x004E, 0, 0, NULL }, /* 0x4E */ 116 { 0x004F, 0, 0, NULL }, /* 0x4F */ 117 { 0x0050, 0, 0, NULL }, /* 0x50 */ 118 { 0x0051, 0, 0, NULL }, /* 0x51 */ 119 { 0x0052, 0, 0, NULL }, /* 0x52 */ 120 { 0x0053, 0, 0, NULL }, /* 0x53 */ 121 { 0x0054, 0, 0, NULL }, /* 0x54 */ 122 { 0x0055, 0, 0, NULL }, /* 0x55 */ 123 { 0x0056, 0, 0, NULL }, /* 0x56 */ 124 { 0x0057, 0, 0, NULL }, /* 0x57 */ 125 { 0x0058, 0, 0, NULL }, /* 0x58 */ 126 { 0x0059, 0, 0, NULL }, /* 0x59 */ 127 { 0x005A, 0, 0, NULL }, /* 0x5A */ 128 { 0x005B, 0, 0, NULL }, /* 0x5B */ 129 { 0x005C, 0, 0, NULL }, /* 0x5C */ /* is A5 (YEN SIGN), but for compatibiliy with ascii, we use 0x5C (SLASH) like MS CP392 */ 130 { 0x005D, 0, 0, NULL }, /* 0x5D */ 131 { 0x005E, 0, 0, NULL }, /* 0x5E */ 132 { 0x005F, 0, 0, NULL }, /* 0x5F */ 133 { 0x0060, 0, 0, NULL }, /* 0x60 */ 134 { 0x0061, 0, 0, NULL }, /* 0x61 */ 135 { 0x0062, 0, 0, NULL }, /* 0x62 */ 136 { 0x0063, 0, 0, NULL }, /* 0x63 */ 137 { 0x0064, 0, 0, NULL }, /* 0x64 */ 138 { 0x0065, 0, 0, NULL }, /* 0x65 */ 139 { 0x0066, 0, 0, NULL }, /* 0x66 */ 140 { 0x0067, 0, 0, NULL }, /* 0x67 */ 141 { 0x0068, 0, 0, NULL }, /* 0x68 */ 142 { 0x0069, 0, 0, NULL }, /* 0x69 */ 143 { 0x006A, 0, 0, NULL }, /* 0x6A */ 144 { 0x006B, 0, 0, NULL }, /* 0x6B */ 145 { 0x006C, 0, 0, NULL }, /* 0x6C */ 146 { 0x006D, 0, 0, NULL }, /* 0x6D */ 147 { 0x006E, 0, 0, NULL }, /* 0x6E */ 148 { 0x006F, 0, 0, NULL }, /* 0x6F */ 149 { 0x0070, 0, 0, NULL }, /* 0x70 */ 150 { 0x0071, 0, 0, NULL }, /* 0x71 */ 151 { 0x0072, 0, 0, NULL }, /* 0x72 */ 152 { 0x0073, 0, 0, NULL }, /* 0x73 */ 153 { 0x0074, 0, 0, NULL }, /* 0x74 */ 154 { 0x0075, 0, 0, NULL }, /* 0x75 */ 155 { 0x0076, 0, 0, NULL }, /* 0x76 */ 156 { 0x0077, 0, 0, NULL }, /* 0x77 */ 157 { 0x0078, 0, 0, NULL }, /* 0x78 */ 158 { 0x0079, 0, 0, NULL }, /* 0x79 */ 159 { 0x007A, 0, 0, NULL }, /* 0x7A */ 160 { 0x007B, 0, 0, NULL }, /* 0x7B */ 161 { 0x007C, 0, 0, NULL }, /* 0x7C */ 162 { 0x007D, 0, 0, NULL }, /* 0x7D */ 163 { 0x007E, 0, 0, NULL }, /* 0x7E */ /* is 0x0203E (SPACING OVERSCORE), but for compatibiliy with ascii, we use 0x7E (TILDE) like MS CP392 */ 164 { 0x007F, 0, 0, NULL }, /* 0x7F */ 165 { 0x005C, 0, 0, NULL }, /* 0x80 */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ 166 { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_81 }, /* 0x81 */ 167 { 0, 0x4F, 0xF1, aImplDBCSToUniTab_SJIS_82 }, /* 0x82 */ 168 { 0, 0x40, 0xD6, aImplDBCSToUniTab_SJIS_83 }, /* 0x83 */ 169 { 0, 0x40, 0xBF, aImplDBCSToUniTab_SJIS_84 }, /* 0x84 */ 170 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */ 171 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */ 172 { 0, 0x40, 0x9C, aImplDBCSToUniTab_MS932_87 }, /* 0x87 */ /* We use the MS table for better MS compatibility */ 173 { 0, 0x9F, 0xFC, aImplDBCSToUniTab_SJIS_88 }, /* 0x88 */ 174 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_89 }, /* 0x89 */ 175 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8A }, /* 0x8A */ 176 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8B }, /* 0x8B */ 177 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8C }, /* 0x8C */ 178 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8D }, /* 0x8D */ 179 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8E }, /* 0x8E */ 180 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8F }, /* 0x8F */ 181 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_90 }, /* 0x90 */ 182 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_91 }, /* 0x91 */ 183 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_92 }, /* 0x92 */ 184 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_93 }, /* 0x93 */ 185 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_94 }, /* 0x94 */ 186 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_95 }, /* 0x95 */ 187 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_96 }, /* 0x96 */ 188 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_97 }, /* 0x97 */ 189 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_98 }, /* 0x98 */ 190 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_99 }, /* 0x99 */ 191 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9A }, /* 0x9A */ 192 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9B }, /* 0x9B */ 193 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9C }, /* 0x9C */ 194 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9D }, /* 0x9D */ 195 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9E }, /* 0x9E */ 196 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9F }, /* 0x9F */ 197 { 0x00A0, 0, 0, NULL }, /* 0xA0 */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ 198 { 0xFF61, 0, 0, NULL }, /* 0xA1 */ 199 { 0xFF62, 0, 0, NULL }, /* 0xA2 */ 200 { 0xFF63, 0, 0, NULL }, /* 0xA3 */ 201 { 0xFF64, 0, 0, NULL }, /* 0xA4 */ 202 { 0xFF65, 0, 0, NULL }, /* 0xA5 */ 203 { 0xFF66, 0, 0, NULL }, /* 0xA6 */ 204 { 0xFF67, 0, 0, NULL }, /* 0xA7 */ 205 { 0xFF68, 0, 0, NULL }, /* 0xA8 */ 206 { 0xFF69, 0, 0, NULL }, /* 0xA9 */ 207 { 0xFF6A, 0, 0, NULL }, /* 0xAA */ 208 { 0xFF6B, 0, 0, NULL }, /* 0xAB */ 209 { 0xFF6C, 0, 0, NULL }, /* 0xAC */ 210 { 0xFF6D, 0, 0, NULL }, /* 0xAD */ 211 { 0xFF6E, 0, 0, NULL }, /* 0xAE */ 212 { 0xFF6F, 0, 0, NULL }, /* 0xAF */ 213 { 0xFF70, 0, 0, NULL }, /* 0xB0 */ 214 { 0xFF71, 0, 0, NULL }, /* 0xB1 */ 215 { 0xFF72, 0, 0, NULL }, /* 0xB2 */ 216 { 0xFF73, 0, 0, NULL }, /* 0xB3 */ 217 { 0xFF74, 0, 0, NULL }, /* 0xB4 */ 218 { 0xFF75, 0, 0, NULL }, /* 0xB5 */ 219 { 0xFF76, 0, 0, NULL }, /* 0xB6 */ 220 { 0xFF77, 0, 0, NULL }, /* 0xB7 */ 221 { 0xFF78, 0, 0, NULL }, /* 0xB8 */ 222 { 0xFF79, 0, 0, NULL }, /* 0xB9 */ 223 { 0xFF7A, 0, 0, NULL }, /* 0xBA */ 224 { 0xFF7B, 0, 0, NULL }, /* 0xBB */ 225 { 0xFF7C, 0, 0, NULL }, /* 0xBC */ 226 { 0xFF7D, 0, 0, NULL }, /* 0xBD */ 227 { 0xFF7E, 0, 0, NULL }, /* 0xBE */ 228 { 0xFF7F, 0, 0, NULL }, /* 0xBF */ 229 { 0xFF80, 0, 0, NULL }, /* 0xC0 */ 230 { 0xFF81, 0, 0, NULL }, /* 0xC1 */ 231 { 0xFF82, 0, 0, NULL }, /* 0xC2 */ 232 { 0xFF83, 0, 0, NULL }, /* 0xC3 */ 233 { 0xFF84, 0, 0, NULL }, /* 0xC4 */ 234 { 0xFF85, 0, 0, NULL }, /* 0xC5 */ 235 { 0xFF86, 0, 0, NULL }, /* 0xC6 */ 236 { 0xFF87, 0, 0, NULL }, /* 0xC7 */ 237 { 0xFF88, 0, 0, NULL }, /* 0xC8 */ 238 { 0xFF89, 0, 0, NULL }, /* 0xC9 */ 239 { 0xFF8A, 0, 0, NULL }, /* 0xCA */ 240 { 0xFF8B, 0, 0, NULL }, /* 0xCB */ 241 { 0xFF8C, 0, 0, NULL }, /* 0xCC */ 242 { 0xFF8D, 0, 0, NULL }, /* 0xCD */ 243 { 0xFF8E, 0, 0, NULL }, /* 0xCE */ 244 { 0xFF8F, 0, 0, NULL }, /* 0xCF */ 245 { 0xFF90, 0, 0, NULL }, /* 0xD0 */ 246 { 0xFF91, 0, 0, NULL }, /* 0xD1 */ 247 { 0xFF92, 0, 0, NULL }, /* 0xD2 */ 248 { 0xFF93, 0, 0, NULL }, /* 0xD3 */ 249 { 0xFF94, 0, 0, NULL }, /* 0xD4 */ 250 { 0xFF95, 0, 0, NULL }, /* 0xD5 */ 251 { 0xFF96, 0, 0, NULL }, /* 0xD6 */ 252 { 0xFF97, 0, 0, NULL }, /* 0xD7 */ 253 { 0xFF98, 0, 0, NULL }, /* 0xD8 */ 254 { 0xFF99, 0, 0, NULL }, /* 0xD9 */ 255 { 0xFF9A, 0, 0, NULL }, /* 0xDA */ 256 { 0xFF9B, 0, 0, NULL }, /* 0xDB */ 257 { 0xFF9C, 0, 0, NULL }, /* 0xDC */ 258 { 0xFF9D, 0, 0, NULL }, /* 0xDD */ 259 { 0xFF9E, 0, 0, NULL }, /* 0xDE */ 260 { 0xFF9F, 0, 0, NULL }, /* 0xDF */ 261 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E0 }, /* 0xE0 */ 262 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E1 }, /* 0xE1 */ 263 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E2 }, /* 0xE2 */ 264 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E3 }, /* 0xE3 */ 265 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E4 }, /* 0xE4 */ 266 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E5 }, /* 0xE5 */ 267 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E6 }, /* 0xE6 */ 268 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E7 }, /* 0xE7 */ 269 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E8 }, /* 0xE8 */ 270 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E9 }, /* 0xE9 */ 271 { 0, 0x40, 0xA4, aImplDBCSToUniTab_SJIS_EA }, /* 0xEA */ 272 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEB */ /* We convert this as double byte */ 273 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEC */ /* We convert this as double byte */ 274 { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_ED }, /* 0xED */ /* We use the MS table for better MS compatibility */ 275 { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_EE }, /* 0xEE */ /* We use the MS table for better MS compatibility */ 276 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEF */ /* We convert this as double byte */ 277 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF0 */ /* EUDC Range */ 278 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF1 */ /* EUDC Range */ 279 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF2 */ /* EUDC Range */ 280 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF3 */ /* EUDC Range */ 281 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF4 */ /* EUDC Range */ 282 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF5 */ /* EUDC Range */ 283 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF6 */ /* EUDC Range */ 284 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF7 */ /* EUDC Range */ 285 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF8 */ /* EUDC Range */ 286 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF9 */ /* EUDC Range */ 287 { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FA }, /* 0xFA */ /* We use the MS table for better MS compatibility */ 288 { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FB }, /* 0xFB */ /* We use the MS table for better MS compatibility */ 289 { 0, 0x40, 0x4B, aImplDBCSToUniTab_MS932_FC }, /* 0xFC */ /* We use the MS table for better MS compatibility */ 290 { 0x00A9, 0, 0, NULL }, /* 0xFD */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ 291 { 0x2122, 0, 0, NULL }, /* 0xFE */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ 292 { 0x2026, 0, 0, NULL } /* 0xFF */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ 293}; 294 295/* ----------------------------------------------------------------------- */ 296 297/* MS932-Tables are used for better microsoft compatibility */ 298 299static ImplUniToDBCSHighTab const aSJISDBCSHighTab[256] = 300{ 301 { 0x00, 0xF7, aImplUniToDBCSTab_SJIS_00 }, /* 0x00 */ 302 { 1, 0, NULL }, /* 0x01 */ 303 { 1, 0, NULL }, /* 0x02 */ 304 { 0x91, 0xC9, aImplUniToDBCSTab_SJIS_03 }, /* 0x03 */ 305 { 0x01, 0x51, aImplUniToDBCSTab_SJIS_04 }, /* 0x04 */ 306 { 1, 0, NULL }, /* 0x05 */ 307 { 1, 0, NULL }, /* 0x06 */ 308 { 1, 0, NULL }, /* 0x07 */ 309 { 1, 0, NULL }, /* 0x08 */ 310 { 1, 0, NULL }, /* 0x09 */ 311 { 1, 0, NULL }, /* 0x0A */ 312 { 1, 0, NULL }, /* 0x0B */ 313 { 1, 0, NULL }, /* 0x0C */ 314 { 1, 0, NULL }, /* 0x0D */ 315 { 1, 0, NULL }, /* 0x0E */ 316 { 1, 0, NULL }, /* 0x0F */ 317 { 1, 0, NULL }, /* 0x10 */ 318 { 1, 0, NULL }, /* 0x11 */ 319 { 1, 0, NULL }, /* 0x12 */ 320 { 1, 0, NULL }, /* 0x13 */ 321 { 1, 0, NULL }, /* 0x14 */ 322 { 1, 0, NULL }, /* 0x15 */ 323 { 1, 0, NULL }, /* 0x16 */ 324 { 1, 0, NULL }, /* 0x17 */ 325 { 1, 0, NULL }, /* 0x18 */ 326 { 1, 0, NULL }, /* 0x19 */ 327 { 1, 0, NULL }, /* 0x1A */ 328 { 1, 0, NULL }, /* 0x1B */ 329 { 1, 0, NULL }, /* 0x1C */ 330 { 1, 0, NULL }, /* 0x1D */ 331 { 1, 0, NULL }, /* 0x1E */ 332 { 1, 0, NULL }, /* 0x1F */ 333 { 0x10, 0x3E, aImplUniToDBCSTab_SJIS_20 }, /* 0x20 */ 334 { 0x03, 0xD4, aImplUniToDBCSTab_MS932_21 }, /* 0x21 */ 335 { 0x00, 0xBF, aImplUniToDBCSTab_MS932_22 }, /* 0x22 */ 336 { 0x12, 0x12, aImplUniToDBCSTab_SJIS_23 }, /* 0x23 */ 337 { 0x60, 0x73, aImplUniToDBCSTab_MS932_24 }, /* 0x24 */ 338 { 0x00, 0xEF, aImplUniToDBCSTab_SJIS_25 }, /* 0x25 */ 339 { 0x05, 0x6F, aImplUniToDBCSTab_SJIS_26 }, /* 0x26 */ 340 { 1, 0, NULL }, /* 0x27 */ 341 { 1, 0, NULL }, /* 0x28 */ 342 { 1, 0, NULL }, /* 0x29 */ 343 { 1, 0, NULL }, /* 0x2A */ 344 { 1, 0, NULL }, /* 0x2B */ 345 { 1, 0, NULL }, /* 0x2C */ 346 { 1, 0, NULL }, /* 0x2D */ 347 { 1, 0, NULL }, /* 0x2E */ 348 { 1, 0, NULL }, /* 0x2F */ 349 { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_30 }, /* 0x30 */ 350 { 1, 0, NULL }, /* 0x31 */ 351 { 0x31, 0xA8, aImplUniToDBCSTab_MS932_32 }, /* 0x32 */ 352 { 0x03, 0xCD, aImplUniToDBCSTab_MS932_33 }, /* 0x33 */ 353 { 1, 0, NULL }, /* 0x34 */ 354 { 1, 0, NULL }, /* 0x35 */ 355 { 1, 0, NULL }, /* 0x36 */ 356 { 1, 0, NULL }, /* 0x37 */ 357 { 1, 0, NULL }, /* 0x38 */ 358 { 1, 0, NULL }, /* 0x39 */ 359 { 1, 0, NULL }, /* 0x3A */ 360 { 1, 0, NULL }, /* 0x3B */ 361 { 1, 0, NULL }, /* 0x3C */ 362 { 1, 0, NULL }, /* 0x3D */ 363 { 1, 0, NULL }, /* 0x3E */ 364 { 1, 0, NULL }, /* 0x3F */ 365 { 1, 0, NULL }, /* 0x40 */ 366 { 1, 0, NULL }, /* 0x41 */ 367 { 1, 0, NULL }, /* 0x42 */ 368 { 1, 0, NULL }, /* 0x43 */ 369 { 1, 0, NULL }, /* 0x44 */ 370 { 1, 0, NULL }, /* 0x45 */ 371 { 1, 0, NULL }, /* 0x46 */ 372 { 1, 0, NULL }, /* 0x47 */ 373 { 1, 0, NULL }, /* 0x48 */ 374 { 1, 0, NULL }, /* 0x49 */ 375 { 1, 0, NULL }, /* 0x4A */ 376 { 1, 0, NULL }, /* 0x4B */ 377 { 1, 0, NULL }, /* 0x4C */ 378 { 1, 0, NULL }, /* 0x4D */ 379 { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_4E }, /* 0x4E */ 380 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_4F }, /* 0x4F */ 381 { 0x05, 0xFB, aImplUniToDBCSTab_SJIS_50 }, /* 0x50 */ 382 { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_51 }, /* 0x51 */ 383 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_52 }, /* 0x52 */ 384 { 0x00, 0xFA, aImplUniToDBCSTab_SJIS_53 }, /* 0x53 */ 385 { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_54 }, /* 0x54 */ 386 { 0x04, 0xFE, aImplUniToDBCSTab_SJIS_55 }, /* 0x55 */ 387 { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_56 }, /* 0x56 */ 388 { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_57 }, /* 0x57 */ 389 { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_58 }, /* 0x58 */ 390 { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_59 }, /* 0x59 */ 391 { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_5A }, /* 0x5A */ 392 { 0x09, 0xFF, aImplUniToDBCSTab_SJIS_5B }, /* 0x5B */ 393 { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_5C }, /* 0x5C */ 394 { 0x07, 0xFE, aImplUniToDBCSTab_SJIS_5D }, /* 0x5D */ 395 { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_5E }, /* 0x5E */ 396 { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_5F }, /* 0x5F */ 397 { 0x0E, 0xFB, aImplUniToDBCSTab_SJIS_60 }, /* 0x60 */ 398 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_61 }, /* 0x61 */ 399 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_62 }, /* 0x62 */ 400 { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_63 }, /* 0x63 */ 401 { 0x06, 0xFE, aImplUniToDBCSTab_SJIS_64 }, /* 0x64 */ 402 { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_65 }, /* 0x65 */ 403 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_66 }, /* 0x66 */ 404 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_67 }, /* 0x67 */ 405 { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_68 }, /* 0x68 */ 406 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_69 }, /* 0x69 */ 407 { 0x02, 0xFB, aImplUniToDBCSTab_SJIS_6A }, /* 0x6A */ 408 { 0x04, 0xF3, aImplUniToDBCSTab_SJIS_6B }, /* 0x6B */ 409 { 0x08, 0xF3, aImplUniToDBCSTab_SJIS_6C }, /* 0x6C */ 410 { 0x04, 0xFC, aImplUniToDBCSTab_SJIS_6D }, /* 0x6D */ 411 { 0x05, 0xFF, aImplUniToDBCSTab_SJIS_6E }, /* 0x6E */ 412 { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_6F }, /* 0x6F */ 413 { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_70 }, /* 0x70 */ 414 { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_71 }, /* 0x71 */ 415 { 0x06, 0xFD, aImplUniToDBCSTab_SJIS_72 }, /* 0x72 */ 416 { 0x0A, 0xFE, aImplUniToDBCSTab_SJIS_73 }, /* 0x73 */ 417 { 0x03, 0xF8, aImplUniToDBCSTab_SJIS_74 }, /* 0x74 */ 418 { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_75 }, /* 0x75 */ 419 { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_76 }, /* 0x76 */ 420 { 0x01, 0xFC, aImplUniToDBCSTab_SJIS_77 }, /* 0x77 */ 421 { 0x02, 0xFD, aImplUniToDBCSTab_SJIS_78 }, /* 0x78 */ 422 { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_79 }, /* 0x79 */ 423 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_7A }, /* 0x7A */ 424 { 0x02, 0xF7, aImplUniToDBCSTab_SJIS_7B }, /* 0x7B */ 425 { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_7C }, /* 0x7C */ 426 { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_7D }, /* 0x7D */ 427 { 0x01, 0x9C, aImplUniToDBCSTab_SJIS_7E }, /* 0x7E */ 428 { 0x36, 0xFC, aImplUniToDBCSTab_SJIS_7F }, /* 0x7F */ 429 { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_80 }, /* 0x80 */ 430 { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_81 }, /* 0x81 */ 431 { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_82 }, /* 0x82 */ 432 { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_83 }, /* 0x83 */ 433 { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_84 }, /* 0x84 */ 434 { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_85 }, /* 0x85 */ 435 { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_86 }, /* 0x86 */ 436 { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_87 }, /* 0x87 */ 437 { 0x05, 0xFE, aImplUniToDBCSTab_SJIS_88 }, /* 0x88 */ 438 { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_89 }, /* 0x89 */ 439 { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_8A }, /* 0x8A */ 440 { 0x00, 0x9A, aImplUniToDBCSTab_SJIS_8B }, /* 0x8B */ 441 { 0x37, 0xFD, aImplUniToDBCSTab_SJIS_8C }, /* 0x8C */ 442 { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_8D }, /* 0x8D */ 443 { 0x08, 0xFE, aImplUniToDBCSTab_SJIS_8E }, /* 0x8E */ 444 { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_8F }, /* 0x8F */ 445 { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_90 }, /* 0x90 */ 446 { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_91 }, /* 0x91 */ 447 { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_92 }, /* 0x92 */ 448 { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_93 }, /* 0x93 */ 449 { 0x03, 0x81, aImplUniToDBCSTab_SJIS_94 }, /* 0x94 */ 450 { 0x77, 0xE5, aImplUniToDBCSTab_SJIS_95 }, /* 0x95 */ 451 { 0x1C, 0xFB, aImplUniToDBCSTab_SJIS_96 }, /* 0x96 */ 452 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_97 }, /* 0x97 */ 453 { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_98 }, /* 0x98 */ 454 { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_99 }, /* 0x99 */ 455 { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_9A }, /* 0x9A */ 456 { 0x06, 0xF5, aImplUniToDBCSTab_SJIS_9B }, /* 0x9B */ 457 { 0x00, 0xF6, aImplUniToDBCSTab_SJIS_9C }, /* 0x9C */ 458 { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_9D }, /* 0x9D */ 459 { 0x19, 0xFD, aImplUniToDBCSTab_SJIS_9E }, /* 0x9E */ 460 { 0x07, 0xA0, aImplUniToDBCSTab_SJIS_9F }, /* 0x9F */ 461 { 1, 0, NULL }, /* 0xA0 */ 462 { 1, 0, NULL }, /* 0xA1 */ 463 { 1, 0, NULL }, /* 0xA2 */ 464 { 1, 0, NULL }, /* 0xA3 */ 465 { 1, 0, NULL }, /* 0xA4 */ 466 { 1, 0, NULL }, /* 0xA5 */ 467 { 1, 0, NULL }, /* 0xA6 */ 468 { 1, 0, NULL }, /* 0xA7 */ 469 { 1, 0, NULL }, /* 0xA8 */ 470 { 1, 0, NULL }, /* 0xA9 */ 471 { 1, 0, NULL }, /* 0xAA */ 472 { 1, 0, NULL }, /* 0xAB */ 473 { 1, 0, NULL }, /* 0xAC */ 474 { 1, 0, NULL }, /* 0xAD */ 475 { 1, 0, NULL }, /* 0xAE */ 476 { 1, 0, NULL }, /* 0xAF */ 477 { 1, 0, NULL }, /* 0xB0 */ 478 { 1, 0, NULL }, /* 0xB1 */ 479 { 1, 0, NULL }, /* 0xB2 */ 480 { 1, 0, NULL }, /* 0xB3 */ 481 { 1, 0, NULL }, /* 0xB4 */ 482 { 1, 0, NULL }, /* 0xB5 */ 483 { 1, 0, NULL }, /* 0xB6 */ 484 { 1, 0, NULL }, /* 0xB7 */ 485 { 1, 0, NULL }, /* 0xB8 */ 486 { 1, 0, NULL }, /* 0xB9 */ 487 { 1, 0, NULL }, /* 0xBA */ 488 { 1, 0, NULL }, /* 0xBB */ 489 { 1, 0, NULL }, /* 0xBC */ 490 { 1, 0, NULL }, /* 0xBD */ 491 { 1, 0, NULL }, /* 0xBE */ 492 { 1, 0, NULL }, /* 0xBF */ 493 { 1, 0, NULL }, /* 0xC0 */ 494 { 1, 0, NULL }, /* 0xC1 */ 495 { 1, 0, NULL }, /* 0xC2 */ 496 { 1, 0, NULL }, /* 0xC3 */ 497 { 1, 0, NULL }, /* 0xC4 */ 498 { 1, 0, NULL }, /* 0xC5 */ 499 { 1, 0, NULL }, /* 0xC6 */ 500 { 1, 0, NULL }, /* 0xC7 */ 501 { 1, 0, NULL }, /* 0xC8 */ 502 { 1, 0, NULL }, /* 0xC9 */ 503 { 1, 0, NULL }, /* 0xCA */ 504 { 1, 0, NULL }, /* 0xCB */ 505 { 1, 0, NULL }, /* 0xCC */ 506 { 1, 0, NULL }, /* 0xCD */ 507 { 1, 0, NULL }, /* 0xCE */ 508 { 1, 0, NULL }, /* 0xCF */ 509 { 1, 0, NULL }, /* 0xD0 */ 510 { 1, 0, NULL }, /* 0xD1 */ 511 { 1, 0, NULL }, /* 0xD2 */ 512 { 1, 0, NULL }, /* 0xD3 */ 513 { 1, 0, NULL }, /* 0xD4 */ 514 { 1, 0, NULL }, /* 0xD5 */ 515 { 1, 0, NULL }, /* 0xD6 */ 516 { 1, 0, NULL }, /* 0xD7 */ 517 { 1, 0, NULL }, /* 0xD8 */ 518 { 1, 0, NULL }, /* 0xD9 */ 519 { 1, 0, NULL }, /* 0xDA */ 520 { 1, 0, NULL }, /* 0xDB */ 521 { 1, 0, NULL }, /* 0xDC */ 522 { 1, 0, NULL }, /* 0xDD */ 523 { 1, 0, NULL }, /* 0xDE */ 524 { 1, 0, NULL }, /* 0xDF */ 525 { 1, 0, NULL }, /* 0xE0 */ 526 { 1, 0, NULL }, /* 0xE1 */ 527 { 1, 0, NULL }, /* 0xE2 */ 528 { 1, 0, NULL }, /* 0xE3 */ 529 { 1, 0, NULL }, /* 0xE4 */ 530 { 1, 0, NULL }, /* 0xE5 */ 531 { 1, 0, NULL }, /* 0xE6 */ 532 { 1, 0, NULL }, /* 0xE7 */ 533 { 1, 0, NULL }, /* 0xE8 */ 534 { 1, 0, NULL }, /* 0xE9 */ 535 { 1, 0, NULL }, /* 0xEA */ 536 { 1, 0, NULL }, /* 0xEB */ 537 { 1, 0, NULL }, /* 0xEC */ 538 { 1, 0, NULL }, /* 0xED */ 539 { 1, 0, NULL }, /* 0xEE */ 540 { 1, 0, NULL }, /* 0xEF */ 541 { 1, 0, NULL }, /* 0xF0 */ 542 { 1, 0, NULL }, /* 0xF1 */ 543 { 1, 0, NULL }, /* 0xF2 */ 544 { 1, 0, NULL }, /* 0xF3 */ 545 { 1, 0, NULL }, /* 0xF4 */ 546 { 1, 0, NULL }, /* 0xF5 */ 547 { 1, 0, NULL }, /* 0xF6 */ 548 { 1, 0, NULL }, /* 0xF7 */ 549 { 1, 0, NULL }, /* 0xF8 */ 550 { 0x29, 0xDC, aImplUniToDBCSTab_MS932_F9 }, /* 0xF9 */ 551 { 0x0E, 0x2D, aImplUniToDBCSTab_MS932_FA }, /* 0xFA */ 552 { 1, 0, NULL }, /* 0xFB */ 553 { 1, 0, NULL }, /* 0xFC */ 554 { 1, 0, NULL }, /* 0xFD */ 555 { 1, 0, NULL }, /* 0xFE */ 556 { 0x01, 0xE5, aImplUniToDBCSTab_SJIS_FF } /* 0xFF */ 557}; 558 559/* ----------------------------------------------------------------------- */ 560 561/* F040-F9FC --> E000-E757 */ 562 563#define DBCS_EUDC_SJIS_COUNT 1 564static ImplDBCSEUDCData const aImplSJISDBCSEUDCTab[DBCS_EUDC_SJIS_COUNT] = 565{ 566 /* EUDC-Range */ 567 /* Lead: F0-F9 */ 568 /* Trail: 40-7E, 80-FC */ 569 { 0xF0, 0xF9, 0x40, 0x7E, 0x80, 0xFC, 0, 0, 2, 0xBC, 0xE000, 0xE757 } 570}; 571 572/* ----------------------------------------------------------------------- */ 573 574static ImplDBCSConvertData const aImplSJISDBCSCvtData = 575{ 576 aSJISUniLeadTab, 577 aSJISDBCSHighTab, 578 0x00, 0xFF, 579 0x40, 0xFC, 580 aImplSJISDBCSEUDCTab, 581 DBCS_EUDC_SJIS_COUNT 582}; 583 584/* ----------------------------------------------------------------------- */ 585 586static ImplTextEncodingData const aImplSJISTextEncodingData 587 = { { &aImplSJISDBCSCvtData, 588 ImplDBCSToUnicode, 589 ImplUnicodeToDBCS, 590 NULL, 591 NULL, 592 NULL, 593 NULL, 594 NULL, 595 NULL }, 596 1, 597 2, 598 2, 599 128, 600 "euc-jp", 601 "shift_jis", 602 RTL_TEXTENCODING_INFO_MULTIBYTE | RTL_TEXTENCODING_INFO_MIME }; 603 /* SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */ 604 605/* ======================================================================= */ 606 607static ImplDBCSToUniLeadTab const aMS932UniLeadTab[256] = 608{ 609 { 0x0000, 0, 0, NULL }, /* 0x00 */ 610 { 0x0001, 0, 0, NULL }, /* 0x01 */ 611 { 0x0002, 0, 0, NULL }, /* 0x02 */ 612 { 0x0003, 0, 0, NULL }, /* 0x03 */ 613 { 0x0004, 0, 0, NULL }, /* 0x04 */ 614 { 0x0005, 0, 0, NULL }, /* 0x05 */ 615 { 0x0006, 0, 0, NULL }, /* 0x06 */ 616 { 0x0007, 0, 0, NULL }, /* 0x07 */ 617 { 0x0008, 0, 0, NULL }, /* 0x08 */ 618 { 0x0009, 0, 0, NULL }, /* 0x09 */ 619 { 0x000A, 0, 0, NULL }, /* 0x0A */ 620 { 0x000B, 0, 0, NULL }, /* 0x0B */ 621 { 0x000C, 0, 0, NULL }, /* 0x0C */ 622 { 0x000D, 0, 0, NULL }, /* 0x0D */ 623 { 0x000E, 0, 0, NULL }, /* 0x0E */ 624 { 0x000F, 0, 0, NULL }, /* 0x0F */ 625 { 0x0010, 0, 0, NULL }, /* 0x10 */ 626 { 0x0011, 0, 0, NULL }, /* 0x11 */ 627 { 0x0012, 0, 0, NULL }, /* 0x12 */ 628 { 0x0013, 0, 0, NULL }, /* 0x13 */ 629 { 0x0014, 0, 0, NULL }, /* 0x14 */ 630 { 0x0015, 0, 0, NULL }, /* 0x15 */ 631 { 0x0016, 0, 0, NULL }, /* 0x16 */ 632 { 0x0017, 0, 0, NULL }, /* 0x17 */ 633 { 0x0018, 0, 0, NULL }, /* 0x18 */ 634 { 0x0019, 0, 0, NULL }, /* 0x19 */ 635 { 0x001A, 0, 0, NULL }, /* 0x1A */ 636 { 0x001B, 0, 0, NULL }, /* 0x1B */ 637 { 0x001C, 0, 0, NULL }, /* 0x1C */ 638 { 0x001D, 0, 0, NULL }, /* 0x1D */ 639 { 0x001E, 0, 0, NULL }, /* 0x1E */ 640 { 0x001F, 0, 0, NULL }, /* 0x1F */ 641 { 0x0020, 0, 0, NULL }, /* 0x20 */ 642 { 0x0021, 0, 0, NULL }, /* 0x21 */ 643 { 0x0022, 0, 0, NULL }, /* 0x22 */ 644 { 0x0023, 0, 0, NULL }, /* 0x23 */ 645 { 0x0024, 0, 0, NULL }, /* 0x24 */ 646 { 0x0025, 0, 0, NULL }, /* 0x25 */ 647 { 0x0026, 0, 0, NULL }, /* 0x26 */ 648 { 0x0027, 0, 0, NULL }, /* 0x27 */ 649 { 0x0028, 0, 0, NULL }, /* 0x28 */ 650 { 0x0029, 0, 0, NULL }, /* 0x29 */ 651 { 0x002A, 0, 0, NULL }, /* 0x2A */ 652 { 0x002B, 0, 0, NULL }, /* 0x2B */ 653 { 0x002C, 0, 0, NULL }, /* 0x2C */ 654 { 0x002D, 0, 0, NULL }, /* 0x2D */ 655 { 0x002E, 0, 0, NULL }, /* 0x2E */ 656 { 0x002F, 0, 0, NULL }, /* 0x2F */ 657 { 0x0030, 0, 0, NULL }, /* 0x30 */ 658 { 0x0031, 0, 0, NULL }, /* 0x31 */ 659 { 0x0032, 0, 0, NULL }, /* 0x32 */ 660 { 0x0033, 0, 0, NULL }, /* 0x33 */ 661 { 0x0034, 0, 0, NULL }, /* 0x34 */ 662 { 0x0035, 0, 0, NULL }, /* 0x35 */ 663 { 0x0036, 0, 0, NULL }, /* 0x36 */ 664 { 0x0037, 0, 0, NULL }, /* 0x37 */ 665 { 0x0038, 0, 0, NULL }, /* 0x38 */ 666 { 0x0039, 0, 0, NULL }, /* 0x39 */ 667 { 0x003A, 0, 0, NULL }, /* 0x3A */ 668 { 0x003B, 0, 0, NULL }, /* 0x3B */ 669 { 0x003C, 0, 0, NULL }, /* 0x3C */ 670 { 0x003D, 0, 0, NULL }, /* 0x3D */ 671 { 0x003E, 0, 0, NULL }, /* 0x3E */ 672 { 0x003F, 0, 0, NULL }, /* 0x3F */ 673 { 0x0040, 0, 0, NULL }, /* 0x40 */ 674 { 0x0041, 0, 0, NULL }, /* 0x41 */ 675 { 0x0042, 0, 0, NULL }, /* 0x42 */ 676 { 0x0043, 0, 0, NULL }, /* 0x43 */ 677 { 0x0044, 0, 0, NULL }, /* 0x44 */ 678 { 0x0045, 0, 0, NULL }, /* 0x45 */ 679 { 0x0046, 0, 0, NULL }, /* 0x46 */ 680 { 0x0047, 0, 0, NULL }, /* 0x47 */ 681 { 0x0048, 0, 0, NULL }, /* 0x48 */ 682 { 0x0049, 0, 0, NULL }, /* 0x49 */ 683 { 0x004A, 0, 0, NULL }, /* 0x4A */ 684 { 0x004B, 0, 0, NULL }, /* 0x4B */ 685 { 0x004C, 0, 0, NULL }, /* 0x4C */ 686 { 0x004D, 0, 0, NULL }, /* 0x4D */ 687 { 0x004E, 0, 0, NULL }, /* 0x4E */ 688 { 0x004F, 0, 0, NULL }, /* 0x4F */ 689 { 0x0050, 0, 0, NULL }, /* 0x50 */ 690 { 0x0051, 0, 0, NULL }, /* 0x51 */ 691 { 0x0052, 0, 0, NULL }, /* 0x52 */ 692 { 0x0053, 0, 0, NULL }, /* 0x53 */ 693 { 0x0054, 0, 0, NULL }, /* 0x54 */ 694 { 0x0055, 0, 0, NULL }, /* 0x55 */ 695 { 0x0056, 0, 0, NULL }, /* 0x56 */ 696 { 0x0057, 0, 0, NULL }, /* 0x57 */ 697 { 0x0058, 0, 0, NULL }, /* 0x58 */ 698 { 0x0059, 0, 0, NULL }, /* 0x59 */ 699 { 0x005A, 0, 0, NULL }, /* 0x5A */ 700 { 0x005B, 0, 0, NULL }, /* 0x5B */ 701 { 0x005C, 0, 0, NULL }, /* 0x5C */ /* in SJIS this is A5 (YEN SIGN), but for compatibiliy with ascii, we use 0x5C like MS CP392 */ 702 { 0x005D, 0, 0, NULL }, /* 0x5D */ 703 { 0x005E, 0, 0, NULL }, /* 0x5E */ 704 { 0x005F, 0, 0, NULL }, /* 0x5F */ 705 { 0x0060, 0, 0, NULL }, /* 0x60 */ 706 { 0x0061, 0, 0, NULL }, /* 0x61 */ 707 { 0x0062, 0, 0, NULL }, /* 0x62 */ 708 { 0x0063, 0, 0, NULL }, /* 0x63 */ 709 { 0x0064, 0, 0, NULL }, /* 0x64 */ 710 { 0x0065, 0, 0, NULL }, /* 0x65 */ 711 { 0x0066, 0, 0, NULL }, /* 0x66 */ 712 { 0x0067, 0, 0, NULL }, /* 0x67 */ 713 { 0x0068, 0, 0, NULL }, /* 0x68 */ 714 { 0x0069, 0, 0, NULL }, /* 0x69 */ 715 { 0x006A, 0, 0, NULL }, /* 0x6A */ 716 { 0x006B, 0, 0, NULL }, /* 0x6B */ 717 { 0x006C, 0, 0, NULL }, /* 0x6C */ 718 { 0x006D, 0, 0, NULL }, /* 0x6D */ 719 { 0x006E, 0, 0, NULL }, /* 0x6E */ 720 { 0x006F, 0, 0, NULL }, /* 0x6F */ 721 { 0x0070, 0, 0, NULL }, /* 0x70 */ 722 { 0x0071, 0, 0, NULL }, /* 0x71 */ 723 { 0x0072, 0, 0, NULL }, /* 0x72 */ 724 { 0x0073, 0, 0, NULL }, /* 0x73 */ 725 { 0x0074, 0, 0, NULL }, /* 0x74 */ 726 { 0x0075, 0, 0, NULL }, /* 0x75 */ 727 { 0x0076, 0, 0, NULL }, /* 0x76 */ 728 { 0x0077, 0, 0, NULL }, /* 0x77 */ 729 { 0x0078, 0, 0, NULL }, /* 0x78 */ 730 { 0x0079, 0, 0, NULL }, /* 0x79 */ 731 { 0x007A, 0, 0, NULL }, /* 0x7A */ 732 { 0x007B, 0, 0, NULL }, /* 0x7B */ 733 { 0x007C, 0, 0, NULL }, /* 0x7C */ 734 { 0x007D, 0, 0, NULL }, /* 0x7D */ 735 { 0x007E, 0, 0, NULL }, /* 0x7E */ /* in SJIS this is 0x0203E (SPACING OVERSCORE), but for compatibiliy with ascii, we use 0x7E (TILDE) like MS CP392 */ 736 { 0x007F, 0, 0, NULL }, /* 0x7F */ 737 { 0x005C, 0, 0, NULL }, /* 0x80 */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ 738 { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_81 }, /* 0x81 */ 739 { 0, 0x4F, 0xF1, aImplDBCSToUniTab_SJIS_82 }, /* 0x82 */ 740 { 0, 0x40, 0xD6, aImplDBCSToUniTab_SJIS_83 }, /* 0x83 */ 741 { 0, 0x40, 0xBF, aImplDBCSToUniTab_SJIS_84 }, /* 0x84 */ 742 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x85 */ /* We convert this as double byte */ 743 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x86 */ /* We convert this as double byte */ 744 { 0, 0x40, 0x9C, aImplDBCSToUniTab_MS932_87 }, /* 0x87 */ 745 { 0, 0x9F, 0xFC, aImplDBCSToUniTab_SJIS_88 }, /* 0x88 */ 746 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_89 }, /* 0x89 */ 747 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8A }, /* 0x8A */ 748 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8B }, /* 0x8B */ 749 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8C }, /* 0x8C */ 750 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8D }, /* 0x8D */ 751 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8E }, /* 0x8E */ 752 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8F }, /* 0x8F */ 753 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_90 }, /* 0x90 */ 754 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_91 }, /* 0x91 */ 755 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_92 }, /* 0x92 */ 756 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_93 }, /* 0x93 */ 757 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_94 }, /* 0x94 */ 758 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_95 }, /* 0x95 */ 759 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_96 }, /* 0x96 */ 760 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_97 }, /* 0x97 */ 761 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_98 }, /* 0x98 */ 762 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_99 }, /* 0x99 */ 763 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9A }, /* 0x9A */ 764 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9B }, /* 0x9B */ 765 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9C }, /* 0x9C */ 766 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9D }, /* 0x9D */ 767 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9E }, /* 0x9E */ 768 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9F }, /* 0x9F */ 769 { 0x00A0, 0, 0, NULL }, /* 0xA0 */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ 770 { 0xFF61, 0, 0, NULL }, /* 0xA1 */ 771 { 0xFF62, 0, 0, NULL }, /* 0xA2 */ 772 { 0xFF63, 0, 0, NULL }, /* 0xA3 */ 773 { 0xFF64, 0, 0, NULL }, /* 0xA4 */ 774 { 0xFF65, 0, 0, NULL }, /* 0xA5 */ 775 { 0xFF66, 0, 0, NULL }, /* 0xA6 */ 776 { 0xFF67, 0, 0, NULL }, /* 0xA7 */ 777 { 0xFF68, 0, 0, NULL }, /* 0xA8 */ 778 { 0xFF69, 0, 0, NULL }, /* 0xA9 */ 779 { 0xFF6A, 0, 0, NULL }, /* 0xAA */ 780 { 0xFF6B, 0, 0, NULL }, /* 0xAB */ 781 { 0xFF6C, 0, 0, NULL }, /* 0xAC */ 782 { 0xFF6D, 0, 0, NULL }, /* 0xAD */ 783 { 0xFF6E, 0, 0, NULL }, /* 0xAE */ 784 { 0xFF6F, 0, 0, NULL }, /* 0xAF */ 785 { 0xFF70, 0, 0, NULL }, /* 0xB0 */ 786 { 0xFF71, 0, 0, NULL }, /* 0xB1 */ 787 { 0xFF72, 0, 0, NULL }, /* 0xB2 */ 788 { 0xFF73, 0, 0, NULL }, /* 0xB3 */ 789 { 0xFF74, 0, 0, NULL }, /* 0xB4 */ 790 { 0xFF75, 0, 0, NULL }, /* 0xB5 */ 791 { 0xFF76, 0, 0, NULL }, /* 0xB6 */ 792 { 0xFF77, 0, 0, NULL }, /* 0xB7 */ 793 { 0xFF78, 0, 0, NULL }, /* 0xB8 */ 794 { 0xFF79, 0, 0, NULL }, /* 0xB9 */ 795 { 0xFF7A, 0, 0, NULL }, /* 0xBA */ 796 { 0xFF7B, 0, 0, NULL }, /* 0xBB */ 797 { 0xFF7C, 0, 0, NULL }, /* 0xBC */ 798 { 0xFF7D, 0, 0, NULL }, /* 0xBD */ 799 { 0xFF7E, 0, 0, NULL }, /* 0xBE */ 800 { 0xFF7F, 0, 0, NULL }, /* 0xBF */ 801 { 0xFF80, 0, 0, NULL }, /* 0xC0 */ 802 { 0xFF81, 0, 0, NULL }, /* 0xC1 */ 803 { 0xFF82, 0, 0, NULL }, /* 0xC2 */ 804 { 0xFF83, 0, 0, NULL }, /* 0xC3 */ 805 { 0xFF84, 0, 0, NULL }, /* 0xC4 */ 806 { 0xFF85, 0, 0, NULL }, /* 0xC5 */ 807 { 0xFF86, 0, 0, NULL }, /* 0xC6 */ 808 { 0xFF87, 0, 0, NULL }, /* 0xC7 */ 809 { 0xFF88, 0, 0, NULL }, /* 0xC8 */ 810 { 0xFF89, 0, 0, NULL }, /* 0xC9 */ 811 { 0xFF8A, 0, 0, NULL }, /* 0xCA */ 812 { 0xFF8B, 0, 0, NULL }, /* 0xCB */ 813 { 0xFF8C, 0, 0, NULL }, /* 0xCC */ 814 { 0xFF8D, 0, 0, NULL }, /* 0xCD */ 815 { 0xFF8E, 0, 0, NULL }, /* 0xCE */ 816 { 0xFF8F, 0, 0, NULL }, /* 0xCF */ 817 { 0xFF90, 0, 0, NULL }, /* 0xD0 */ 818 { 0xFF91, 0, 0, NULL }, /* 0xD1 */ 819 { 0xFF92, 0, 0, NULL }, /* 0xD2 */ 820 { 0xFF93, 0, 0, NULL }, /* 0xD3 */ 821 { 0xFF94, 0, 0, NULL }, /* 0xD4 */ 822 { 0xFF95, 0, 0, NULL }, /* 0xD5 */ 823 { 0xFF96, 0, 0, NULL }, /* 0xD6 */ 824 { 0xFF97, 0, 0, NULL }, /* 0xD7 */ 825 { 0xFF98, 0, 0, NULL }, /* 0xD8 */ 826 { 0xFF99, 0, 0, NULL }, /* 0xD9 */ 827 { 0xFF9A, 0, 0, NULL }, /* 0xDA */ 828 { 0xFF9B, 0, 0, NULL }, /* 0xDB */ 829 { 0xFF9C, 0, 0, NULL }, /* 0xDC */ 830 { 0xFF9D, 0, 0, NULL }, /* 0xDD */ 831 { 0xFF9E, 0, 0, NULL }, /* 0xDE */ 832 { 0xFF9F, 0, 0, NULL }, /* 0xDF */ 833 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E0 }, /* 0xE0 */ 834 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E1 }, /* 0xE1 */ 835 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E2 }, /* 0xE2 */ 836 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E3 }, /* 0xE3 */ 837 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E4 }, /* 0xE4 */ 838 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E5 }, /* 0xE5 */ 839 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E6 }, /* 0xE6 */ 840 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E7 }, /* 0xE7 */ 841 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E8 }, /* 0xE8 */ 842 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E9 }, /* 0xE9 */ 843 { 0, 0x40, 0xA4, aImplDBCSToUniTab_SJIS_EA }, /* 0xEA */ 844 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEB */ /* We convert this as double byte */ 845 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEC */ /* We convert this as double byte */ 846 { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_ED }, /* 0xED */ 847 { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_EE }, /* 0xEE */ 848 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEF */ /* We convert this as double byte */ 849 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF0 */ /* EUDC Range */ 850 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF1 */ /* EUDC Range */ 851 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF2 */ /* EUDC Range */ 852 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF3 */ /* EUDC Range */ 853 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF4 */ /* EUDC Range */ 854 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF5 */ /* EUDC Range */ 855 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF6 */ /* EUDC Range */ 856 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF7 */ /* EUDC Range */ 857 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF8 */ /* EUDC Range */ 858 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF9 */ /* EUDC Range */ 859 { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FA }, /* 0xFA */ 860 { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FB }, /* 0xFB */ 861 { 0, 0x40, 0x4B, aImplDBCSToUniTab_MS932_FC }, /* 0xFC */ 862 { 0x00A9, 0, 0, NULL }, /* 0xFD */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ 863 { 0x2122, 0, 0, NULL }, /* 0xFE */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ 864 { 0x2026, 0, 0, NULL } /* 0xFF */ /* APPLE additons over SJIS, we convert this like apple, because I think, this gives better result, than we take a replacement char */ 865}; 866 867/* ----------------------------------------------------------------------- */ 868 869static ImplUniToDBCSHighTab const aMS932DBCSHighTab[256] = 870{ 871 { 0x00, 0xF7, aImplUniToDBCSTab_SJIS_00 }, /* 0x00 */ 872 { 1, 0, NULL }, /* 0x01 */ 873 { 1, 0, NULL }, /* 0x02 */ 874 { 0x91, 0xC9, aImplUniToDBCSTab_SJIS_03 }, /* 0x03 */ 875 { 0x01, 0x51, aImplUniToDBCSTab_SJIS_04 }, /* 0x04 */ 876 { 1, 0, NULL }, /* 0x05 */ 877 { 1, 0, NULL }, /* 0x06 */ 878 { 1, 0, NULL }, /* 0x07 */ 879 { 1, 0, NULL }, /* 0x08 */ 880 { 1, 0, NULL }, /* 0x09 */ 881 { 1, 0, NULL }, /* 0x0A */ 882 { 1, 0, NULL }, /* 0x0B */ 883 { 1, 0, NULL }, /* 0x0C */ 884 { 1, 0, NULL }, /* 0x0D */ 885 { 1, 0, NULL }, /* 0x0E */ 886 { 1, 0, NULL }, /* 0x0F */ 887 { 1, 0, NULL }, /* 0x10 */ 888 { 1, 0, NULL }, /* 0x11 */ 889 { 1, 0, NULL }, /* 0x12 */ 890 { 1, 0, NULL }, /* 0x13 */ 891 { 1, 0, NULL }, /* 0x14 */ 892 { 1, 0, NULL }, /* 0x15 */ 893 { 1, 0, NULL }, /* 0x16 */ 894 { 1, 0, NULL }, /* 0x17 */ 895 { 1, 0, NULL }, /* 0x18 */ 896 { 1, 0, NULL }, /* 0x19 */ 897 { 1, 0, NULL }, /* 0x1A */ 898 { 1, 0, NULL }, /* 0x1B */ 899 { 1, 0, NULL }, /* 0x1C */ 900 { 1, 0, NULL }, /* 0x1D */ 901 { 1, 0, NULL }, /* 0x1E */ 902 { 1, 0, NULL }, /* 0x1F */ 903 { 0x10, 0x3E, aImplUniToDBCSTab_SJIS_20 }, /* 0x20 */ 904 { 0x03, 0xD4, aImplUniToDBCSTab_MS932_21 }, /* 0x21 */ 905 { 0x00, 0xBF, aImplUniToDBCSTab_MS932_22 }, /* 0x22 */ 906 { 0x12, 0x12, aImplUniToDBCSTab_SJIS_23 }, /* 0x23 */ 907 { 0x60, 0x73, aImplUniToDBCSTab_MS932_24 }, /* 0x24 */ 908 { 0x00, 0xEF, aImplUniToDBCSTab_SJIS_25 }, /* 0x25 */ 909 { 0x05, 0x6F, aImplUniToDBCSTab_SJIS_26 }, /* 0x26 */ 910 { 1, 0, NULL }, /* 0x27 */ 911 { 1, 0, NULL }, /* 0x28 */ 912 { 1, 0, NULL }, /* 0x29 */ 913 { 1, 0, NULL }, /* 0x2A */ 914 { 1, 0, NULL }, /* 0x2B */ 915 { 1, 0, NULL }, /* 0x2C */ 916 { 1, 0, NULL }, /* 0x2D */ 917 { 1, 0, NULL }, /* 0x2E */ 918 { 1, 0, NULL }, /* 0x2F */ 919 { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_30 }, /* 0x30 */ 920 { 1, 0, NULL }, /* 0x31 */ 921 { 0x31, 0xA8, aImplUniToDBCSTab_MS932_32 }, /* 0x32 */ 922 { 0x03, 0xCD, aImplUniToDBCSTab_MS932_33 }, /* 0x33 */ 923 { 1, 0, NULL }, /* 0x34 */ 924 { 1, 0, NULL }, /* 0x35 */ 925 { 1, 0, NULL }, /* 0x36 */ 926 { 1, 0, NULL }, /* 0x37 */ 927 { 1, 0, NULL }, /* 0x38 */ 928 { 1, 0, NULL }, /* 0x39 */ 929 { 1, 0, NULL }, /* 0x3A */ 930 { 1, 0, NULL }, /* 0x3B */ 931 { 1, 0, NULL }, /* 0x3C */ 932 { 1, 0, NULL }, /* 0x3D */ 933 { 1, 0, NULL }, /* 0x3E */ 934 { 1, 0, NULL }, /* 0x3F */ 935 { 1, 0, NULL }, /* 0x40 */ 936 { 1, 0, NULL }, /* 0x41 */ 937 { 1, 0, NULL }, /* 0x42 */ 938 { 1, 0, NULL }, /* 0x43 */ 939 { 1, 0, NULL }, /* 0x44 */ 940 { 1, 0, NULL }, /* 0x45 */ 941 { 1, 0, NULL }, /* 0x46 */ 942 { 1, 0, NULL }, /* 0x47 */ 943 { 1, 0, NULL }, /* 0x48 */ 944 { 1, 0, NULL }, /* 0x49 */ 945 { 1, 0, NULL }, /* 0x4A */ 946 { 1, 0, NULL }, /* 0x4B */ 947 { 1, 0, NULL }, /* 0x4C */ 948 { 1, 0, NULL }, /* 0x4D */ 949 { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_4E }, /* 0x4E */ 950 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_4F }, /* 0x4F */ 951 { 0x05, 0xFB, aImplUniToDBCSTab_SJIS_50 }, /* 0x50 */ 952 { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_51 }, /* 0x51 */ 953 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_52 }, /* 0x52 */ 954 { 0x00, 0xFA, aImplUniToDBCSTab_SJIS_53 }, /* 0x53 */ 955 { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_54 }, /* 0x54 */ 956 { 0x04, 0xFE, aImplUniToDBCSTab_SJIS_55 }, /* 0x55 */ 957 { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_56 }, /* 0x56 */ 958 { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_57 }, /* 0x57 */ 959 { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_58 }, /* 0x58 */ 960 { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_59 }, /* 0x59 */ 961 { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_5A }, /* 0x5A */ 962 { 0x09, 0xFF, aImplUniToDBCSTab_SJIS_5B }, /* 0x5B */ 963 { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_5C }, /* 0x5C */ 964 { 0x07, 0xFE, aImplUniToDBCSTab_SJIS_5D }, /* 0x5D */ 965 { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_5E }, /* 0x5E */ 966 { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_5F }, /* 0x5F */ 967 { 0x0E, 0xFB, aImplUniToDBCSTab_SJIS_60 }, /* 0x60 */ 968 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_61 }, /* 0x61 */ 969 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_62 }, /* 0x62 */ 970 { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_63 }, /* 0x63 */ 971 { 0x06, 0xFE, aImplUniToDBCSTab_SJIS_64 }, /* 0x64 */ 972 { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_65 }, /* 0x65 */ 973 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_66 }, /* 0x66 */ 974 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_67 }, /* 0x67 */ 975 { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_68 }, /* 0x68 */ 976 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_69 }, /* 0x69 */ 977 { 0x02, 0xFB, aImplUniToDBCSTab_SJIS_6A }, /* 0x6A */ 978 { 0x04, 0xF3, aImplUniToDBCSTab_SJIS_6B }, /* 0x6B */ 979 { 0x08, 0xF3, aImplUniToDBCSTab_SJIS_6C }, /* 0x6C */ 980 { 0x04, 0xFC, aImplUniToDBCSTab_SJIS_6D }, /* 0x6D */ 981 { 0x05, 0xFF, aImplUniToDBCSTab_SJIS_6E }, /* 0x6E */ 982 { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_6F }, /* 0x6F */ 983 { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_70 }, /* 0x70 */ 984 { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_71 }, /* 0x71 */ 985 { 0x06, 0xFD, aImplUniToDBCSTab_SJIS_72 }, /* 0x72 */ 986 { 0x0A, 0xFE, aImplUniToDBCSTab_SJIS_73 }, /* 0x73 */ 987 { 0x03, 0xF8, aImplUniToDBCSTab_SJIS_74 }, /* 0x74 */ 988 { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_75 }, /* 0x75 */ 989 { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_76 }, /* 0x76 */ 990 { 0x01, 0xFC, aImplUniToDBCSTab_SJIS_77 }, /* 0x77 */ 991 { 0x02, 0xFD, aImplUniToDBCSTab_SJIS_78 }, /* 0x78 */ 992 { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_79 }, /* 0x79 */ 993 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_7A }, /* 0x7A */ 994 { 0x02, 0xF7, aImplUniToDBCSTab_SJIS_7B }, /* 0x7B */ 995 { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_7C }, /* 0x7C */ 996 { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_7D }, /* 0x7D */ 997 { 0x01, 0x9C, aImplUniToDBCSTab_SJIS_7E }, /* 0x7E */ 998 { 0x36, 0xFC, aImplUniToDBCSTab_SJIS_7F }, /* 0x7F */ 999 { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_80 }, /* 0x80 */ 1000 { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_81 }, /* 0x81 */ 1001 { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_82 }, /* 0x82 */ 1002 { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_83 }, /* 0x83 */ 1003 { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_84 }, /* 0x84 */ 1004 { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_85 }, /* 0x85 */ 1005 { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_86 }, /* 0x86 */ 1006 { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_87 }, /* 0x87 */ 1007 { 0x05, 0xFE, aImplUniToDBCSTab_SJIS_88 }, /* 0x88 */ 1008 { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_89 }, /* 0x89 */ 1009 { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_8A }, /* 0x8A */ 1010 { 0x00, 0x9A, aImplUniToDBCSTab_SJIS_8B }, /* 0x8B */ 1011 { 0x37, 0xFD, aImplUniToDBCSTab_SJIS_8C }, /* 0x8C */ 1012 { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_8D }, /* 0x8D */ 1013 { 0x08, 0xFE, aImplUniToDBCSTab_SJIS_8E }, /* 0x8E */ 1014 { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_8F }, /* 0x8F */ 1015 { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_90 }, /* 0x90 */ 1016 { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_91 }, /* 0x91 */ 1017 { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_92 }, /* 0x92 */ 1018 { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_93 }, /* 0x93 */ 1019 { 0x03, 0x81, aImplUniToDBCSTab_SJIS_94 }, /* 0x94 */ 1020 { 0x77, 0xE5, aImplUniToDBCSTab_SJIS_95 }, /* 0x95 */ 1021 { 0x1C, 0xFB, aImplUniToDBCSTab_SJIS_96 }, /* 0x96 */ 1022 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_97 }, /* 0x97 */ 1023 { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_98 }, /* 0x98 */ 1024 { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_99 }, /* 0x99 */ 1025 { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_9A }, /* 0x9A */ 1026 { 0x06, 0xF5, aImplUniToDBCSTab_SJIS_9B }, /* 0x9B */ 1027 { 0x00, 0xF6, aImplUniToDBCSTab_SJIS_9C }, /* 0x9C */ 1028 { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_9D }, /* 0x9D */ 1029 { 0x19, 0xFD, aImplUniToDBCSTab_SJIS_9E }, /* 0x9E */ 1030 { 0x07, 0xA0, aImplUniToDBCSTab_SJIS_9F }, /* 0x9F */ 1031 { 1, 0, NULL }, /* 0xA0 */ 1032 { 1, 0, NULL }, /* 0xA1 */ 1033 { 1, 0, NULL }, /* 0xA2 */ 1034 { 1, 0, NULL }, /* 0xA3 */ 1035 { 1, 0, NULL }, /* 0xA4 */ 1036 { 1, 0, NULL }, /* 0xA5 */ 1037 { 1, 0, NULL }, /* 0xA6 */ 1038 { 1, 0, NULL }, /* 0xA7 */ 1039 { 1, 0, NULL }, /* 0xA8 */ 1040 { 1, 0, NULL }, /* 0xA9 */ 1041 { 1, 0, NULL }, /* 0xAA */ 1042 { 1, 0, NULL }, /* 0xAB */ 1043 { 1, 0, NULL }, /* 0xAC */ 1044 { 1, 0, NULL }, /* 0xAD */ 1045 { 1, 0, NULL }, /* 0xAE */ 1046 { 1, 0, NULL }, /* 0xAF */ 1047 { 1, 0, NULL }, /* 0xB0 */ 1048 { 1, 0, NULL }, /* 0xB1 */ 1049 { 1, 0, NULL }, /* 0xB2 */ 1050 { 1, 0, NULL }, /* 0xB3 */ 1051 { 1, 0, NULL }, /* 0xB4 */ 1052 { 1, 0, NULL }, /* 0xB5 */ 1053 { 1, 0, NULL }, /* 0xB6 */ 1054 { 1, 0, NULL }, /* 0xB7 */ 1055 { 1, 0, NULL }, /* 0xB8 */ 1056 { 1, 0, NULL }, /* 0xB9 */ 1057 { 1, 0, NULL }, /* 0xBA */ 1058 { 1, 0, NULL }, /* 0xBB */ 1059 { 1, 0, NULL }, /* 0xBC */ 1060 { 1, 0, NULL }, /* 0xBD */ 1061 { 1, 0, NULL }, /* 0xBE */ 1062 { 1, 0, NULL }, /* 0xBF */ 1063 { 1, 0, NULL }, /* 0xC0 */ 1064 { 1, 0, NULL }, /* 0xC1 */ 1065 { 1, 0, NULL }, /* 0xC2 */ 1066 { 1, 0, NULL }, /* 0xC3 */ 1067 { 1, 0, NULL }, /* 0xC4 */ 1068 { 1, 0, NULL }, /* 0xC5 */ 1069 { 1, 0, NULL }, /* 0xC6 */ 1070 { 1, 0, NULL }, /* 0xC7 */ 1071 { 1, 0, NULL }, /* 0xC8 */ 1072 { 1, 0, NULL }, /* 0xC9 */ 1073 { 1, 0, NULL }, /* 0xCA */ 1074 { 1, 0, NULL }, /* 0xCB */ 1075 { 1, 0, NULL }, /* 0xCC */ 1076 { 1, 0, NULL }, /* 0xCD */ 1077 { 1, 0, NULL }, /* 0xCE */ 1078 { 1, 0, NULL }, /* 0xCF */ 1079 { 1, 0, NULL }, /* 0xD0 */ 1080 { 1, 0, NULL }, /* 0xD1 */ 1081 { 1, 0, NULL }, /* 0xD2 */ 1082 { 1, 0, NULL }, /* 0xD3 */ 1083 { 1, 0, NULL }, /* 0xD4 */ 1084 { 1, 0, NULL }, /* 0xD5 */ 1085 { 1, 0, NULL }, /* 0xD6 */ 1086 { 1, 0, NULL }, /* 0xD7 */ 1087 { 1, 0, NULL }, /* 0xD8 */ 1088 { 1, 0, NULL }, /* 0xD9 */ 1089 { 1, 0, NULL }, /* 0xDA */ 1090 { 1, 0, NULL }, /* 0xDB */ 1091 { 1, 0, NULL }, /* 0xDC */ 1092 { 1, 0, NULL }, /* 0xDD */ 1093 { 1, 0, NULL }, /* 0xDE */ 1094 { 1, 0, NULL }, /* 0xDF */ 1095 { 1, 0, NULL }, /* 0xE0 */ 1096 { 1, 0, NULL }, /* 0xE1 */ 1097 { 1, 0, NULL }, /* 0xE2 */ 1098 { 1, 0, NULL }, /* 0xE3 */ 1099 { 1, 0, NULL }, /* 0xE4 */ 1100 { 1, 0, NULL }, /* 0xE5 */ 1101 { 1, 0, NULL }, /* 0xE6 */ 1102 { 1, 0, NULL }, /* 0xE7 */ 1103 { 1, 0, NULL }, /* 0xE8 */ 1104 { 1, 0, NULL }, /* 0xE9 */ 1105 { 1, 0, NULL }, /* 0xEA */ 1106 { 1, 0, NULL }, /* 0xEB */ 1107 { 1, 0, NULL }, /* 0xEC */ 1108 { 1, 0, NULL }, /* 0xED */ 1109 { 1, 0, NULL }, /* 0xEE */ 1110 { 1, 0, NULL }, /* 0xEF */ 1111 { 1, 0, NULL }, /* 0xF0 */ 1112 { 1, 0, NULL }, /* 0xF1 */ 1113 { 1, 0, NULL }, /* 0xF2 */ 1114 { 1, 0, NULL }, /* 0xF3 */ 1115 { 1, 0, NULL }, /* 0xF4 */ 1116 { 1, 0, NULL }, /* 0xF5 */ 1117 { 1, 0, NULL }, /* 0xF6 */ 1118 { 1, 0, NULL }, /* 0xF7 */ 1119 { 1, 0, NULL }, /* 0xF8 */ 1120 { 0x29, 0xDC, aImplUniToDBCSTab_MS932_F9 }, /* 0xF9 */ 1121 { 0x0E, 0x2D, aImplUniToDBCSTab_MS932_FA }, /* 0xFA */ 1122 { 1, 0, NULL }, /* 0xFB */ 1123 { 1, 0, NULL }, /* 0xFC */ 1124 { 1, 0, NULL }, /* 0xFD */ 1125 { 1, 0, NULL }, /* 0xFE */ 1126 { 0x01, 0xE5, aImplUniToDBCSTab_SJIS_FF } /* 0xFF */ 1127}; 1128 1129/* ----------------------------------------------------------------------- */ 1130 1131static ImplDBCSConvertData const aImplMS932DBCSCvtData = 1132{ 1133 aMS932UniLeadTab, 1134 aMS932DBCSHighTab, 1135 0x00, 0xFF, 1136 0x40, 0xFC, 1137 aImplSJISDBCSEUDCTab, 1138 DBCS_EUDC_SJIS_COUNT 1139}; 1140 1141/* ----------------------------------------------------------------------- */ 1142 1143static ImplTextEncodingData const aImplMS932TextEncodingData 1144 = { { &aImplMS932DBCSCvtData, 1145 ImplDBCSToUnicode, 1146 ImplUnicodeToDBCS, 1147 NULL, 1148 NULL, 1149 NULL, 1150 NULL, 1151 NULL, 1152 NULL }, 1153 1, 1154 2, 1155 2, 1156 128, 1157 "euc-jp", 1158 "shift_jis", 1159 RTL_TEXTENCODING_INFO_MULTIBYTE }; 1160 /* WIN/DOS/OS2, SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */ 1161 1162/* ======================================================================= */ 1163 1164static ImplDBCSToUniLeadTab const aAPPLEJAPANESEUniLeadTab[256] = 1165{ 1166 { 0x0000, 0, 0, NULL }, /* 0x00 */ 1167 { 0x0001, 0, 0, NULL }, /* 0x01 */ 1168 { 0x0002, 0, 0, NULL }, /* 0x02 */ 1169 { 0x0003, 0, 0, NULL }, /* 0x03 */ 1170 { 0x0004, 0, 0, NULL }, /* 0x04 */ 1171 { 0x0005, 0, 0, NULL }, /* 0x05 */ 1172 { 0x0006, 0, 0, NULL }, /* 0x06 */ 1173 { 0x0007, 0, 0, NULL }, /* 0x07 */ 1174 { 0x0008, 0, 0, NULL }, /* 0x08 */ 1175 { 0x0009, 0, 0, NULL }, /* 0x09 */ 1176 { 0x000A, 0, 0, NULL }, /* 0x0A */ 1177 { 0x000B, 0, 0, NULL }, /* 0x0B */ 1178 { 0x000C, 0, 0, NULL }, /* 0x0C */ 1179 { 0x000D, 0, 0, NULL }, /* 0x0D */ 1180 { 0x000E, 0, 0, NULL }, /* 0x0E */ 1181 { 0x000F, 0, 0, NULL }, /* 0x0F */ 1182 { 0x0010, 0, 0, NULL }, /* 0x10 */ 1183 { 0x0011, 0, 0, NULL }, /* 0x11 */ 1184 { 0x0012, 0, 0, NULL }, /* 0x12 */ 1185 { 0x0013, 0, 0, NULL }, /* 0x13 */ 1186 { 0x0014, 0, 0, NULL }, /* 0x14 */ 1187 { 0x0015, 0, 0, NULL }, /* 0x15 */ 1188 { 0x0016, 0, 0, NULL }, /* 0x16 */ 1189 { 0x0017, 0, 0, NULL }, /* 0x17 */ 1190 { 0x0018, 0, 0, NULL }, /* 0x18 */ 1191 { 0x0019, 0, 0, NULL }, /* 0x19 */ 1192 { 0x001A, 0, 0, NULL }, /* 0x1A */ 1193 { 0x001B, 0, 0, NULL }, /* 0x1B */ 1194 { 0x001C, 0, 0, NULL }, /* 0x1C */ 1195 { 0x001D, 0, 0, NULL }, /* 0x1D */ 1196 { 0x001E, 0, 0, NULL }, /* 0x1E */ 1197 { 0x001F, 0, 0, NULL }, /* 0x1F */ 1198 { 0x0020, 0, 0, NULL }, /* 0x20 */ 1199 { 0x0021, 0, 0, NULL }, /* 0x21 */ 1200 { 0x0022, 0, 0, NULL }, /* 0x22 */ 1201 { 0x0023, 0, 0, NULL }, /* 0x23 */ 1202 { 0x0024, 0, 0, NULL }, /* 0x24 */ 1203 { 0x0025, 0, 0, NULL }, /* 0x25 */ 1204 { 0x0026, 0, 0, NULL }, /* 0x26 */ 1205 { 0x0027, 0, 0, NULL }, /* 0x27 */ 1206 { 0x0028, 0, 0, NULL }, /* 0x28 */ 1207 { 0x0029, 0, 0, NULL }, /* 0x29 */ 1208 { 0x002A, 0, 0, NULL }, /* 0x2A */ 1209 { 0x002B, 0, 0, NULL }, /* 0x2B */ 1210 { 0x002C, 0, 0, NULL }, /* 0x2C */ 1211 { 0x002D, 0, 0, NULL }, /* 0x2D */ 1212 { 0x002E, 0, 0, NULL }, /* 0x2E */ 1213 { 0x002F, 0, 0, NULL }, /* 0x2F */ 1214 { 0x0030, 0, 0, NULL }, /* 0x30 */ 1215 { 0x0031, 0, 0, NULL }, /* 0x31 */ 1216 { 0x0032, 0, 0, NULL }, /* 0x32 */ 1217 { 0x0033, 0, 0, NULL }, /* 0x33 */ 1218 { 0x0034, 0, 0, NULL }, /* 0x34 */ 1219 { 0x0035, 0, 0, NULL }, /* 0x35 */ 1220 { 0x0036, 0, 0, NULL }, /* 0x36 */ 1221 { 0x0037, 0, 0, NULL }, /* 0x37 */ 1222 { 0x0038, 0, 0, NULL }, /* 0x38 */ 1223 { 0x0039, 0, 0, NULL }, /* 0x39 */ 1224 { 0x003A, 0, 0, NULL }, /* 0x3A */ 1225 { 0x003B, 0, 0, NULL }, /* 0x3B */ 1226 { 0x003C, 0, 0, NULL }, /* 0x3C */ 1227 { 0x003D, 0, 0, NULL }, /* 0x3D */ 1228 { 0x003E, 0, 0, NULL }, /* 0x3E */ 1229 { 0x003F, 0, 0, NULL }, /* 0x3F */ 1230 { 0x0040, 0, 0, NULL }, /* 0x40 */ 1231 { 0x0041, 0, 0, NULL }, /* 0x41 */ 1232 { 0x0042, 0, 0, NULL }, /* 0x42 */ 1233 { 0x0043, 0, 0, NULL }, /* 0x43 */ 1234 { 0x0044, 0, 0, NULL }, /* 0x44 */ 1235 { 0x0045, 0, 0, NULL }, /* 0x45 */ 1236 { 0x0046, 0, 0, NULL }, /* 0x46 */ 1237 { 0x0047, 0, 0, NULL }, /* 0x47 */ 1238 { 0x0048, 0, 0, NULL }, /* 0x48 */ 1239 { 0x0049, 0, 0, NULL }, /* 0x49 */ 1240 { 0x004A, 0, 0, NULL }, /* 0x4A */ 1241 { 0x004B, 0, 0, NULL }, /* 0x4B */ 1242 { 0x004C, 0, 0, NULL }, /* 0x4C */ 1243 { 0x004D, 0, 0, NULL }, /* 0x4D */ 1244 { 0x004E, 0, 0, NULL }, /* 0x4E */ 1245 { 0x004F, 0, 0, NULL }, /* 0x4F */ 1246 { 0x0050, 0, 0, NULL }, /* 0x50 */ 1247 { 0x0051, 0, 0, NULL }, /* 0x51 */ 1248 { 0x0052, 0, 0, NULL }, /* 0x52 */ 1249 { 0x0053, 0, 0, NULL }, /* 0x53 */ 1250 { 0x0054, 0, 0, NULL }, /* 0x54 */ 1251 { 0x0055, 0, 0, NULL }, /* 0x55 */ 1252 { 0x0056, 0, 0, NULL }, /* 0x56 */ 1253 { 0x0057, 0, 0, NULL }, /* 0x57 */ 1254 { 0x0058, 0, 0, NULL }, /* 0x58 */ 1255 { 0x0059, 0, 0, NULL }, /* 0x59 */ 1256 { 0x005A, 0, 0, NULL }, /* 0x5A */ 1257 { 0x005B, 0, 0, NULL }, /* 0x5B */ 1258 { 0x005C, 0, 0, NULL }, /* 0x5C */ /* is A5 (YEN SIGN), but for compatibiliy with ascii, we use 0x5C like MS CP392 */ 1259 { 0x005D, 0, 0, NULL }, /* 0x5D */ 1260 { 0x005E, 0, 0, NULL }, /* 0x5E */ 1261 { 0x005F, 0, 0, NULL }, /* 0x5F */ 1262 { 0x0060, 0, 0, NULL }, /* 0x60 */ 1263 { 0x0061, 0, 0, NULL }, /* 0x61 */ 1264 { 0x0062, 0, 0, NULL }, /* 0x62 */ 1265 { 0x0063, 0, 0, NULL }, /* 0x63 */ 1266 { 0x0064, 0, 0, NULL }, /* 0x64 */ 1267 { 0x0065, 0, 0, NULL }, /* 0x65 */ 1268 { 0x0066, 0, 0, NULL }, /* 0x66 */ 1269 { 0x0067, 0, 0, NULL }, /* 0x67 */ 1270 { 0x0068, 0, 0, NULL }, /* 0x68 */ 1271 { 0x0069, 0, 0, NULL }, /* 0x69 */ 1272 { 0x006A, 0, 0, NULL }, /* 0x6A */ 1273 { 0x006B, 0, 0, NULL }, /* 0x6B */ 1274 { 0x006C, 0, 0, NULL }, /* 0x6C */ 1275 { 0x006D, 0, 0, NULL }, /* 0x6D */ 1276 { 0x006E, 0, 0, NULL }, /* 0x6E */ 1277 { 0x006F, 0, 0, NULL }, /* 0x6F */ 1278 { 0x0070, 0, 0, NULL }, /* 0x70 */ 1279 { 0x0071, 0, 0, NULL }, /* 0x71 */ 1280 { 0x0072, 0, 0, NULL }, /* 0x72 */ 1281 { 0x0073, 0, 0, NULL }, /* 0x73 */ 1282 { 0x0074, 0, 0, NULL }, /* 0x74 */ 1283 { 0x0075, 0, 0, NULL }, /* 0x75 */ 1284 { 0x0076, 0, 0, NULL }, /* 0x76 */ 1285 { 0x0077, 0, 0, NULL }, /* 0x77 */ 1286 { 0x0078, 0, 0, NULL }, /* 0x78 */ 1287 { 0x0079, 0, 0, NULL }, /* 0x79 */ 1288 { 0x007A, 0, 0, NULL }, /* 0x7A */ 1289 { 0x007B, 0, 0, NULL }, /* 0x7B */ 1290 { 0x007C, 0, 0, NULL }, /* 0x7C */ 1291 { 0x007D, 0, 0, NULL }, /* 0x7D */ 1292 { 0x007E, 0, 0, NULL }, /* 0x7E */ /* in SJIS this is 0x0203E (SPACING OVERSCORE), but for compatibiliy with ascii, we use 0x7E (TILDE) like MS CP392 */ 1293 { 0x007F, 0, 0, NULL }, /* 0x7F */ 1294 { 0x005C, 0, 0, NULL }, /* 0x80 */ /* APPLE additons over SJIS */ 1295 { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_81 }, /* 0x81 */ 1296 { 0, 0x4F, 0xF1, aImplDBCSToUniTab_SJIS_82 }, /* 0x82 */ 1297 { 0, 0x40, 0xD6, aImplDBCSToUniTab_SJIS_83 }, /* 0x83 */ 1298 { 0, 0x40, 0xBF, aImplDBCSToUniTab_SJIS_84 }, /* 0x84 */ 1299 { 0, 0x40, 0xF4, aImplDBCSToUniTab_APPLEJAPANESE_85 }, /* 0x85 */ 1300 { 0, 0x40, 0xD2, aImplDBCSToUniTab_APPLEJAPANESE_86 }, /* 0x86 */ 1301 { 0, 0x40, 0xFA, aImplDBCSToUniTab_APPLEJAPANESE_87 }, /* 0x87 */ 1302 { 0, 0x40, 0xFC, aImplDBCSToUniTab_APPLEJAPANESE_88 }, /* 0x88 */ 1303 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_89 }, /* 0x89 */ 1304 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8A }, /* 0x8A */ 1305 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8B }, /* 0x8B */ 1306 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8C }, /* 0x8C */ 1307 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8D }, /* 0x8D */ 1308 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8E }, /* 0x8E */ 1309 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_8F }, /* 0x8F */ 1310 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_90 }, /* 0x90 */ 1311 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_91 }, /* 0x91 */ 1312 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_92 }, /* 0x92 */ 1313 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_93 }, /* 0x93 */ 1314 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_94 }, /* 0x94 */ 1315 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_95 }, /* 0x95 */ 1316 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_96 }, /* 0x96 */ 1317 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_97 }, /* 0x97 */ 1318 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_98 }, /* 0x98 */ 1319 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_99 }, /* 0x99 */ 1320 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9A }, /* 0x9A */ 1321 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9B }, /* 0x9B */ 1322 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9C }, /* 0x9C */ 1323 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9D }, /* 0x9D */ 1324 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9E }, /* 0x9E */ 1325 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_9F }, /* 0x9F */ 1326 { 0x00A0, 0, 0, NULL }, /* 0xA0 */ /* APPLE additons over SJIS */ 1327 { 0xFF61, 0, 0, NULL }, /* 0xA1 */ 1328 { 0xFF62, 0, 0, NULL }, /* 0xA2 */ 1329 { 0xFF63, 0, 0, NULL }, /* 0xA3 */ 1330 { 0xFF64, 0, 0, NULL }, /* 0xA4 */ 1331 { 0xFF65, 0, 0, NULL }, /* 0xA5 */ 1332 { 0xFF66, 0, 0, NULL }, /* 0xA6 */ 1333 { 0xFF67, 0, 0, NULL }, /* 0xA7 */ 1334 { 0xFF68, 0, 0, NULL }, /* 0xA8 */ 1335 { 0xFF69, 0, 0, NULL }, /* 0xA9 */ 1336 { 0xFF6A, 0, 0, NULL }, /* 0xAA */ 1337 { 0xFF6B, 0, 0, NULL }, /* 0xAB */ 1338 { 0xFF6C, 0, 0, NULL }, /* 0xAC */ 1339 { 0xFF6D, 0, 0, NULL }, /* 0xAD */ 1340 { 0xFF6E, 0, 0, NULL }, /* 0xAE */ 1341 { 0xFF6F, 0, 0, NULL }, /* 0xAF */ 1342 { 0xFF70, 0, 0, NULL }, /* 0xB0 */ 1343 { 0xFF71, 0, 0, NULL }, /* 0xB1 */ 1344 { 0xFF72, 0, 0, NULL }, /* 0xB2 */ 1345 { 0xFF73, 0, 0, NULL }, /* 0xB3 */ 1346 { 0xFF74, 0, 0, NULL }, /* 0xB4 */ 1347 { 0xFF75, 0, 0, NULL }, /* 0xB5 */ 1348 { 0xFF76, 0, 0, NULL }, /* 0xB6 */ 1349 { 0xFF77, 0, 0, NULL }, /* 0xB7 */ 1350 { 0xFF78, 0, 0, NULL }, /* 0xB8 */ 1351 { 0xFF79, 0, 0, NULL }, /* 0xB9 */ 1352 { 0xFF7A, 0, 0, NULL }, /* 0xBA */ 1353 { 0xFF7B, 0, 0, NULL }, /* 0xBB */ 1354 { 0xFF7C, 0, 0, NULL }, /* 0xBC */ 1355 { 0xFF7D, 0, 0, NULL }, /* 0xBD */ 1356 { 0xFF7E, 0, 0, NULL }, /* 0xBE */ 1357 { 0xFF7F, 0, 0, NULL }, /* 0xBF */ 1358 { 0xFF80, 0, 0, NULL }, /* 0xC0 */ 1359 { 0xFF81, 0, 0, NULL }, /* 0xC1 */ 1360 { 0xFF82, 0, 0, NULL }, /* 0xC2 */ 1361 { 0xFF83, 0, 0, NULL }, /* 0xC3 */ 1362 { 0xFF84, 0, 0, NULL }, /* 0xC4 */ 1363 { 0xFF85, 0, 0, NULL }, /* 0xC5 */ 1364 { 0xFF86, 0, 0, NULL }, /* 0xC6 */ 1365 { 0xFF87, 0, 0, NULL }, /* 0xC7 */ 1366 { 0xFF88, 0, 0, NULL }, /* 0xC8 */ 1367 { 0xFF89, 0, 0, NULL }, /* 0xC9 */ 1368 { 0xFF8A, 0, 0, NULL }, /* 0xCA */ 1369 { 0xFF8B, 0, 0, NULL }, /* 0xCB */ 1370 { 0xFF8C, 0, 0, NULL }, /* 0xCC */ 1371 { 0xFF8D, 0, 0, NULL }, /* 0xCD */ 1372 { 0xFF8E, 0, 0, NULL }, /* 0xCE */ 1373 { 0xFF8F, 0, 0, NULL }, /* 0xCF */ 1374 { 0xFF90, 0, 0, NULL }, /* 0xD0 */ 1375 { 0xFF91, 0, 0, NULL }, /* 0xD1 */ 1376 { 0xFF92, 0, 0, NULL }, /* 0xD2 */ 1377 { 0xFF93, 0, 0, NULL }, /* 0xD3 */ 1378 { 0xFF94, 0, 0, NULL }, /* 0xD4 */ 1379 { 0xFF95, 0, 0, NULL }, /* 0xD5 */ 1380 { 0xFF96, 0, 0, NULL }, /* 0xD6 */ 1381 { 0xFF97, 0, 0, NULL }, /* 0xD7 */ 1382 { 0xFF98, 0, 0, NULL }, /* 0xD8 */ 1383 { 0xFF99, 0, 0, NULL }, /* 0xD9 */ 1384 { 0xFF9A, 0, 0, NULL }, /* 0xDA */ 1385 { 0xFF9B, 0, 0, NULL }, /* 0xDB */ 1386 { 0xFF9C, 0, 0, NULL }, /* 0xDC */ 1387 { 0xFF9D, 0, 0, NULL }, /* 0xDD */ 1388 { 0xFF9E, 0, 0, NULL }, /* 0xDE */ 1389 { 0xFF9F, 0, 0, NULL }, /* 0xDF */ 1390 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E0 }, /* 0xE0 */ 1391 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E1 }, /* 0xE1 */ 1392 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E2 }, /* 0xE2 */ 1393 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E3 }, /* 0xE3 */ 1394 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E4 }, /* 0xE4 */ 1395 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E5 }, /* 0xE5 */ 1396 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E6 }, /* 0xE6 */ 1397 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E7 }, /* 0xE7 */ 1398 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E8 }, /* 0xE8 */ 1399 { 0, 0x40, 0xFC, aImplDBCSToUniTab_SJIS_E9 }, /* 0xE9 */ 1400 { 0, 0x40, 0xA4, aImplDBCSToUniTab_SJIS_EA }, /* 0xEA */ 1401 { 0, 0x51, 0x7A, aImplDBCSToUniTab_APPLEJAPANESE_EB }, /* 0xEB */ 1402 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEC */ /* We convert this as double byte */ 1403 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xED */ /* We convert this as double byte */ 1404 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEE */ /* We convert this as double byte */ 1405 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xEF */ /* We convert this as double byte */ 1406 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF0 */ /* EUDC Range */ 1407 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF1 */ /* EUDC Range */ 1408 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF2 */ /* EUDC Range */ 1409 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF3 */ /* EUDC Range */ 1410 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF4 */ /* EUDC Range */ 1411 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF5 */ /* EUDC Range */ 1412 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF6 */ /* EUDC Range */ 1413 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF7 */ /* EUDC Range */ 1414 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF8 */ /* EUDC Range */ 1415 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0xF9 */ /* EUDC Range */ 1416 { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FA }, /* 0xFA */ /* We use the MS table for better MS compatibility */ 1417 { 0, 0x40, 0xFC, aImplDBCSToUniTab_MS932_FB }, /* 0xFB */ /* We use the MS table for better MS compatibility */ 1418 { 0, 0x40, 0x4B, aImplDBCSToUniTab_MS932_FC }, /* 0xFC */ /* We use the MS table for better MS compatibility */ 1419 { 0x00A9, 0, 0, NULL }, /* 0xFD */ /* APPLE additons over SJIS */ 1420 { 0x2122, 0, 0, NULL }, /* 0xFE */ /* APPLE additons over SJIS */ 1421 { 0x2026, 0, 0, NULL } /* 0xFF */ /* APPLE additons over SJIS */ 1422}; 1423 1424/* ----------------------------------------------------------------------- */ 1425 1426static ImplUniToDBCSHighTab const aAPPLEJAPANESEDBCSHighTab[256] = 1427{ 1428 { 0x00, 0xF7, aImplUniToDBCSTab_APPLEJAPANESE_00 }, /* 0x00 */ 1429 { 1, 0, NULL }, /* 0x01 */ 1430 { 1, 0, NULL }, /* 0x02 */ 1431 { 0x91, 0xC9, aImplUniToDBCSTab_SJIS_03 }, /* 0x03 */ 1432 { 0x01, 0x51, aImplUniToDBCSTab_SJIS_04 }, /* 0x04 */ 1433 { 1, 0, NULL }, /* 0x05 */ 1434 { 1, 0, NULL }, /* 0x06 */ 1435 { 1, 0, NULL }, /* 0x07 */ 1436 { 1, 0, NULL }, /* 0x08 */ 1437 { 1, 0, NULL }, /* 0x09 */ 1438 { 1, 0, NULL }, /* 0x0A */ 1439 { 1, 0, NULL }, /* 0x0B */ 1440 { 1, 0, NULL }, /* 0x0C */ 1441 { 1, 0, NULL }, /* 0x0D */ 1442 { 1, 0, NULL }, /* 0x0E */ 1443 { 1, 0, NULL }, /* 0x0F */ 1444 { 1, 0, NULL }, /* 0x10 */ 1445 { 1, 0, NULL }, /* 0x11 */ 1446 { 1, 0, NULL }, /* 0x12 */ 1447 { 1, 0, NULL }, /* 0x13 */ 1448 { 1, 0, NULL }, /* 0x14 */ 1449 { 1, 0, NULL }, /* 0x15 */ 1450 { 1, 0, NULL }, /* 0x16 */ 1451 { 1, 0, NULL }, /* 0x17 */ 1452 { 1, 0, NULL }, /* 0x18 */ 1453 { 1, 0, NULL }, /* 0x19 */ 1454 { 1, 0, NULL }, /* 0x1A */ 1455 { 1, 0, NULL }, /* 0x1B */ 1456 { 1, 0, NULL }, /* 0x1C */ 1457 { 1, 0, NULL }, /* 0x1D */ 1458 { 1, 0, NULL }, /* 0x1E */ 1459 { 1, 0, NULL }, /* 0x1F */ 1460 { 0x10, 0x3E, aImplUniToDBCSTab_SJIS_20 }, /* 0x20 */ 1461 { 0x03, 0xE9, aImplUniToDBCSTab_APPLEJAPANESE_21 }, /* 0x21 */ 1462 { 0x00, 0xEF, aImplUniToDBCSTab_APPLEJAPANESE_22 }, /* 0x22 */ 1463 { 0x12, 0x12, aImplUniToDBCSTab_SJIS_23 }, /* 0x23 */ 1464 { 0x60, 0xB5, aImplUniToDBCSTab_APPLEJAPANESE_24 }, /* 0x24 */ 1465 { 0x00, 0xEF, aImplUniToDBCSTab_SJIS_25 }, /* 0x25 */ 1466 { 0x05, 0x6F, aImplUniToDBCSTab_APPLEJAPANESE_26 }, /* 0x26 */ 1467 { 0x76, 0x7E, aImplUniToDBCSTab_APPLEJAPANESE_27 }, /* 0x27 */ 1468 { 1, 0, NULL }, /* 0x28 */ 1469 { 1, 0, NULL }, /* 0x29 */ 1470 { 1, 0, NULL }, /* 0x2A */ 1471 { 1, 0, NULL }, /* 0x2B */ 1472 { 1, 0, NULL }, /* 0x2C */ 1473 { 1, 0, NULL }, /* 0x2D */ 1474 { 1, 0, NULL }, /* 0x2E */ 1475 { 1, 0, NULL }, /* 0x2F */ 1476 { 0x00, 0xFE, aImplUniToDBCSTab_APPLEJAPANESE_30 }, /* 0x30 */ 1477 { 1, 0, NULL }, /* 0x31 */ 1478 { 0x2A, 0xA9, aImplUniToDBCSTab_APPLEJAPANESE_32 }, /* 0x32 */ 1479 { 0x00, 0xD4, aImplUniToDBCSTab_APPLEJAPANESE_33 }, /* 0x33 */ 1480 { 1, 0, NULL }, /* 0x34 */ 1481 { 1, 0, NULL }, /* 0x35 */ 1482 { 1, 0, NULL }, /* 0x36 */ 1483 { 1, 0, NULL }, /* 0x37 */ 1484 { 1, 0, NULL }, /* 0x38 */ 1485 { 1, 0, NULL }, /* 0x39 */ 1486 { 1, 0, NULL }, /* 0x3A */ 1487 { 1, 0, NULL }, /* 0x3B */ 1488 { 1, 0, NULL }, /* 0x3C */ 1489 { 1, 0, NULL }, /* 0x3D */ 1490 { 1, 0, NULL }, /* 0x3E */ 1491 { 1, 0, NULL }, /* 0x3F */ 1492 { 1, 0, NULL }, /* 0x40 */ 1493 { 1, 0, NULL }, /* 0x41 */ 1494 { 1, 0, NULL }, /* 0x42 */ 1495 { 1, 0, NULL }, /* 0x43 */ 1496 { 1, 0, NULL }, /* 0x44 */ 1497 { 1, 0, NULL }, /* 0x45 */ 1498 { 1, 0, NULL }, /* 0x46 */ 1499 { 1, 0, NULL }, /* 0x47 */ 1500 { 1, 0, NULL }, /* 0x48 */ 1501 { 1, 0, NULL }, /* 0x49 */ 1502 { 1, 0, NULL }, /* 0x4A */ 1503 { 1, 0, NULL }, /* 0x4B */ 1504 { 1, 0, NULL }, /* 0x4C */ 1505 { 1, 0, NULL }, /* 0x4D */ 1506 { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_4E }, /* 0x4E */ 1507 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_4F }, /* 0x4F */ 1508 { 0x05, 0xFB, aImplUniToDBCSTab_SJIS_50 }, /* 0x50 */ 1509 { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_51 }, /* 0x51 */ 1510 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_52 }, /* 0x52 */ 1511 { 0x00, 0xFA, aImplUniToDBCSTab_SJIS_53 }, /* 0x53 */ 1512 { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_54 }, /* 0x54 */ 1513 { 0x04, 0xFE, aImplUniToDBCSTab_SJIS_55 }, /* 0x55 */ 1514 { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_56 }, /* 0x56 */ 1515 { 0x00, 0xFC, aImplUniToDBCSTab_SJIS_57 }, /* 0x57 */ 1516 { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_58 }, /* 0x58 */ 1517 { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_59 }, /* 0x59 */ 1518 { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_5A }, /* 0x5A */ 1519 { 0x09, 0xFF, aImplUniToDBCSTab_SJIS_5B }, /* 0x5B */ 1520 { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_5C }, /* 0x5C */ 1521 { 0x07, 0xFE, aImplUniToDBCSTab_SJIS_5D }, /* 0x5D */ 1522 { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_5E }, /* 0x5E */ 1523 { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_5F }, /* 0x5F */ 1524 { 0x0E, 0xFB, aImplUniToDBCSTab_SJIS_60 }, /* 0x60 */ 1525 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_61 }, /* 0x61 */ 1526 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_62 }, /* 0x62 */ 1527 { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_63 }, /* 0x63 */ 1528 { 0x06, 0xFE, aImplUniToDBCSTab_SJIS_64 }, /* 0x64 */ 1529 { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_65 }, /* 0x65 */ 1530 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_66 }, /* 0x66 */ 1531 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_67 }, /* 0x67 */ 1532 { 0x01, 0xFA, aImplUniToDBCSTab_SJIS_68 }, /* 0x68 */ 1533 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_69 }, /* 0x69 */ 1534 { 0x02, 0xFB, aImplUniToDBCSTab_SJIS_6A }, /* 0x6A */ 1535 { 0x04, 0xF3, aImplUniToDBCSTab_SJIS_6B }, /* 0x6B */ 1536 { 0x08, 0xF3, aImplUniToDBCSTab_SJIS_6C }, /* 0x6C */ 1537 { 0x04, 0xFC, aImplUniToDBCSTab_SJIS_6D }, /* 0x6D */ 1538 { 0x05, 0xFF, aImplUniToDBCSTab_SJIS_6E }, /* 0x6E */ 1539 { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_6F }, /* 0x6F */ 1540 { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_70 }, /* 0x70 */ 1541 { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_71 }, /* 0x71 */ 1542 { 0x06, 0xFD, aImplUniToDBCSTab_SJIS_72 }, /* 0x72 */ 1543 { 0x0A, 0xFE, aImplUniToDBCSTab_SJIS_73 }, /* 0x73 */ 1544 { 0x03, 0xF8, aImplUniToDBCSTab_SJIS_74 }, /* 0x74 */ 1545 { 0x01, 0xFF, aImplUniToDBCSTab_SJIS_75 }, /* 0x75 */ 1546 { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_76 }, /* 0x76 */ 1547 { 0x01, 0xFC, aImplUniToDBCSTab_SJIS_77 }, /* 0x77 */ 1548 { 0x02, 0xFD, aImplUniToDBCSTab_SJIS_78 }, /* 0x78 */ 1549 { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_79 }, /* 0x79 */ 1550 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_7A }, /* 0x7A */ 1551 { 0x02, 0xF7, aImplUniToDBCSTab_SJIS_7B }, /* 0x7B */ 1552 { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_7C }, /* 0x7C */ 1553 { 0x00, 0xFB, aImplUniToDBCSTab_SJIS_7D }, /* 0x7D */ 1554 { 0x01, 0x9C, aImplUniToDBCSTab_SJIS_7E }, /* 0x7E */ 1555 { 0x36, 0xFC, aImplUniToDBCSTab_SJIS_7F }, /* 0x7F */ 1556 { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_80 }, /* 0x80 */ 1557 { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_81 }, /* 0x81 */ 1558 { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_82 }, /* 0x82 */ 1559 { 0x01, 0xFD, aImplUniToDBCSTab_SJIS_83 }, /* 0x83 */ 1560 { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_84 }, /* 0x84 */ 1561 { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_85 }, /* 0x85 */ 1562 { 0x02, 0xFE, aImplUniToDBCSTab_SJIS_86 }, /* 0x86 */ 1563 { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_87 }, /* 0x87 */ 1564 { 0x05, 0xFE, aImplUniToDBCSTab_SJIS_88 }, /* 0x88 */ 1565 { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_89 }, /* 0x89 */ 1566 { 0x00, 0xFE, aImplUniToDBCSTab_SJIS_8A }, /* 0x8A */ 1567 { 0x00, 0x9A, aImplUniToDBCSTab_SJIS_8B }, /* 0x8B */ 1568 { 0x37, 0xFD, aImplUniToDBCSTab_SJIS_8C }, /* 0x8C */ 1569 { 0x04, 0xFF, aImplUniToDBCSTab_SJIS_8D }, /* 0x8D */ 1570 { 0x08, 0xFE, aImplUniToDBCSTab_SJIS_8E }, /* 0x8E */ 1571 { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_8F }, /* 0x8F */ 1572 { 0x00, 0xFD, aImplUniToDBCSTab_SJIS_90 }, /* 0x90 */ 1573 { 0x02, 0xFF, aImplUniToDBCSTab_SJIS_91 }, /* 0x91 */ 1574 { 0x06, 0xFF, aImplUniToDBCSTab_SJIS_92 }, /* 0x92 */ 1575 { 0x02, 0xF8, aImplUniToDBCSTab_SJIS_93 }, /* 0x93 */ 1576 { 0x03, 0x81, aImplUniToDBCSTab_SJIS_94 }, /* 0x94 */ 1577 { 0x77, 0xE5, aImplUniToDBCSTab_SJIS_95 }, /* 0x95 */ 1578 { 0x1C, 0xFB, aImplUniToDBCSTab_SJIS_96 }, /* 0x96 */ 1579 { 0x00, 0xFF, aImplUniToDBCSTab_SJIS_97 }, /* 0x97 */ 1580 { 0x01, 0xFE, aImplUniToDBCSTab_SJIS_98 }, /* 0x98 */ 1581 { 0x03, 0xFF, aImplUniToDBCSTab_SJIS_99 }, /* 0x99 */ 1582 { 0x01, 0xFB, aImplUniToDBCSTab_SJIS_9A }, /* 0x9A */ 1583 { 0x06, 0xF5, aImplUniToDBCSTab_SJIS_9B }, /* 0x9B */ 1584 { 0x00, 0xF6, aImplUniToDBCSTab_SJIS_9C }, /* 0x9C */ 1585 { 0x03, 0xFD, aImplUniToDBCSTab_SJIS_9D }, /* 0x9D */ 1586 { 0x19, 0xFD, aImplUniToDBCSTab_SJIS_9E }, /* 0x9E */ 1587 { 0x07, 0xA0, aImplUniToDBCSTab_SJIS_9F }, /* 0x9F */ 1588 { 1, 0, NULL }, /* 0xA0 */ 1589 { 1, 0, NULL }, /* 0xA1 */ 1590 { 1, 0, NULL }, /* 0xA2 */ 1591 { 1, 0, NULL }, /* 0xA3 */ 1592 { 1, 0, NULL }, /* 0xA4 */ 1593 { 1, 0, NULL }, /* 0xA5 */ 1594 { 1, 0, NULL }, /* 0xA6 */ 1595 { 1, 0, NULL }, /* 0xA7 */ 1596 { 1, 0, NULL }, /* 0xA8 */ 1597 { 1, 0, NULL }, /* 0xA9 */ 1598 { 1, 0, NULL }, /* 0xAA */ 1599 { 1, 0, NULL }, /* 0xAB */ 1600 { 1, 0, NULL }, /* 0xAC */ 1601 { 1, 0, NULL }, /* 0xAD */ 1602 { 1, 0, NULL }, /* 0xAE */ 1603 { 1, 0, NULL }, /* 0xAF */ 1604 { 1, 0, NULL }, /* 0xB0 */ 1605 { 1, 0, NULL }, /* 0xB1 */ 1606 { 1, 0, NULL }, /* 0xB2 */ 1607 { 1, 0, NULL }, /* 0xB3 */ 1608 { 1, 0, NULL }, /* 0xB4 */ 1609 { 1, 0, NULL }, /* 0xB5 */ 1610 { 1, 0, NULL }, /* 0xB6 */ 1611 { 1, 0, NULL }, /* 0xB7 */ 1612 { 1, 0, NULL }, /* 0xB8 */ 1613 { 1, 0, NULL }, /* 0xB9 */ 1614 { 1, 0, NULL }, /* 0xBA */ 1615 { 1, 0, NULL }, /* 0xBB */ 1616 { 1, 0, NULL }, /* 0xBC */ 1617 { 1, 0, NULL }, /* 0xBD */ 1618 { 1, 0, NULL }, /* 0xBE */ 1619 { 1, 0, NULL }, /* 0xBF */ 1620 { 1, 0, NULL }, /* 0xC0 */ 1621 { 1, 0, NULL }, /* 0xC1 */ 1622 { 1, 0, NULL }, /* 0xC2 */ 1623 { 1, 0, NULL }, /* 0xC3 */ 1624 { 1, 0, NULL }, /* 0xC4 */ 1625 { 1, 0, NULL }, /* 0xC5 */ 1626 { 1, 0, NULL }, /* 0xC6 */ 1627 { 1, 0, NULL }, /* 0xC7 */ 1628 { 1, 0, NULL }, /* 0xC8 */ 1629 { 1, 0, NULL }, /* 0xC9 */ 1630 { 1, 0, NULL }, /* 0xCA */ 1631 { 1, 0, NULL }, /* 0xCB */ 1632 { 1, 0, NULL }, /* 0xCC */ 1633 { 1, 0, NULL }, /* 0xCD */ 1634 { 1, 0, NULL }, /* 0xCE */ 1635 { 1, 0, NULL }, /* 0xCF */ 1636 { 1, 0, NULL }, /* 0xD0 */ 1637 { 1, 0, NULL }, /* 0xD1 */ 1638 { 1, 0, NULL }, /* 0xD2 */ 1639 { 1, 0, NULL }, /* 0xD3 */ 1640 { 1, 0, NULL }, /* 0xD4 */ 1641 { 1, 0, NULL }, /* 0xD5 */ 1642 { 1, 0, NULL }, /* 0xD6 */ 1643 { 1, 0, NULL }, /* 0xD7 */ 1644 { 1, 0, NULL }, /* 0xD8 */ 1645 { 1, 0, NULL }, /* 0xD9 */ 1646 { 1, 0, NULL }, /* 0xDA */ 1647 { 1, 0, NULL }, /* 0xDB */ 1648 { 1, 0, NULL }, /* 0xDC */ 1649 { 1, 0, NULL }, /* 0xDD */ 1650 { 1, 0, NULL }, /* 0xDE */ 1651 { 1, 0, NULL }, /* 0xDF */ 1652 { 1, 0, NULL }, /* 0xE0 */ 1653 { 1, 0, NULL }, /* 0xE1 */ 1654 { 1, 0, NULL }, /* 0xE2 */ 1655 { 1, 0, NULL }, /* 0xE3 */ 1656 { 1, 0, NULL }, /* 0xE4 */ 1657 { 1, 0, NULL }, /* 0xE5 */ 1658 { 1, 0, NULL }, /* 0xE6 */ 1659 { 1, 0, NULL }, /* 0xE7 */ 1660 { 1, 0, NULL }, /* 0xE8 */ 1661 { 1, 0, NULL }, /* 0xE9 */ 1662 { 1, 0, NULL }, /* 0xEA */ 1663 { 1, 0, NULL }, /* 0xEB */ 1664 { 1, 0, NULL }, /* 0xEC */ 1665 { 1, 0, NULL }, /* 0xED */ 1666 { 1, 0, NULL }, /* 0xEE */ 1667 { 1, 0, NULL }, /* 0xEF */ 1668 { 1, 0, NULL }, /* 0xF0 */ 1669 { 1, 0, NULL }, /* 0xF1 */ 1670 { 1, 0, NULL }, /* 0xF2 */ 1671 { 1, 0, NULL }, /* 0xF3 */ 1672 { 1, 0, NULL }, /* 0xF4 */ 1673 { 1, 0, NULL }, /* 0xF5 */ 1674 { 1, 0, NULL }, /* 0xF6 */ 1675 { 1, 0, NULL }, /* 0xF7 */ 1676 { 1, 0, NULL }, /* 0xF8 */ 1677 { 0x29, 0xDC, aImplUniToDBCSTab_MS932_F9 }, /* 0xF9 */ 1678 { 0x0E, 0x2D, aImplUniToDBCSTab_MS932_FA }, /* 0xFA */ 1679 { 1, 0, NULL }, /* 0xFB */ 1680 { 1, 0, NULL }, /* 0xFC */ 1681 { 1, 0, NULL }, /* 0xFD */ 1682 { 0x30, 0x44, aImplUniToDBCSTab_APPLEJAPANESE_FE }, /* 0xFE */ 1683 { 0x01, 0xE5, aImplUniToDBCSTab_SJIS_FF } /* 0xFF */ 1684}; 1685 1686/* ----------------------------------------------------------------------- */ 1687 1688static ImplDBCSConvertData const aImplAPPLEJAPANESEDBCSCvtData = 1689{ 1690 aAPPLEJAPANESEUniLeadTab, 1691 aAPPLEJAPANESEDBCSHighTab, 1692 0x00, 0xFF, 1693 0x40, 0xFC, 1694 aImplSJISDBCSEUDCTab, 1695 DBCS_EUDC_SJIS_COUNT 1696}; 1697 1698/* ----------------------------------------------------------------------- */ 1699 1700static ImplTextEncodingData const aImplAPPLEJAPANESETextEncodingData 1701 = { { &aImplAPPLEJAPANESEDBCSCvtData, 1702 ImplDBCSToUnicode, 1703 ImplUnicodeToDBCS, 1704 NULL, 1705 NULL, 1706 NULL, 1707 NULL, 1708 NULL, 1709 NULL }, 1710 1, 1711 2, 1712 2, 1713 128, 1714 "euc-jp", 1715 "shift_jis", 1716 RTL_TEXTENCODING_INFO_MULTIBYTE }; 1717 /* MAC, SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */ 1718 1719/* ======================================================================= */ 1720 1721static ImplDBCSToUniLeadTab const aJIS0208UniLeadTab[128] = 1722{ 1723 { 0, 1, 0, NULL }, /* 0x00 */ 1724 { 0, 1, 0, NULL }, /* 0x01 */ 1725 { 0, 1, 0, NULL }, /* 0x02 */ 1726 { 0, 1, 0, NULL }, /* 0x03 */ 1727 { 0, 1, 0, NULL }, /* 0x04 */ 1728 { 0, 1, 0, NULL }, /* 0x05 */ 1729 { 0, 1, 0, NULL }, /* 0x06 */ 1730 { 0, 1, 0, NULL }, /* 0x07 */ 1731 { 0, 1, 0, NULL }, /* 0x08 */ 1732 { 0, 1, 0, NULL }, /* 0x09 */ 1733 { 0, 1, 0, NULL }, /* 0x0A */ 1734 { 0, 1, 0, NULL }, /* 0x0B */ 1735 { 0, 1, 0, NULL }, /* 0x0C */ 1736 { 0, 1, 0, NULL }, /* 0x0D */ 1737 { 0, 1, 0, NULL }, /* 0x0E */ 1738 { 0, 1, 0, NULL }, /* 0x0F */ 1739 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x10 */ /* We convert this as double byte */ 1740 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x11 */ /* We convert this as double byte */ 1741 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x12 */ /* We convert this as double byte */ 1742 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x13 */ /* We convert this as double byte */ 1743 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x14 */ /* We convert this as double byte */ 1744 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x15 */ /* We convert this as double byte */ 1745 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x16 */ /* We convert this as double byte */ 1746 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x17 */ /* We convert this as double byte */ 1747 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x18 */ /* We convert this as double byte */ 1748 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x19 */ /* We convert this as double byte */ 1749 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1A */ /* We convert this as double byte */ 1750 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1B */ /* We convert this as double byte */ 1751 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1C */ /* We convert this as double byte */ 1752 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1D */ /* We convert this as double byte */ 1753 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1E */ /* We convert this as double byte */ 1754 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1F */ /* We convert this as double byte */ 1755 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x20 */ /* We convert this as double byte */ 1756 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_21 }, /* 0x21 */ 1757 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_22 }, /* 0x22 */ 1758 { 0, 0x30, 0x7A, aImplDBCSToUniTab_JIS0208_23 }, /* 0x23 */ 1759 { 0, 0x21, 0x73, aImplDBCSToUniTab_JIS0208_24 }, /* 0x24 */ 1760 { 0, 0x21, 0x76, aImplDBCSToUniTab_JIS0208_25 }, /* 0x25 */ 1761 { 0, 0x21, 0x58, aImplDBCSToUniTab_JIS0208_26 }, /* 0x26 */ 1762 { 0, 0x21, 0x71, aImplDBCSToUniTab_JIS0208_27 }, /* 0x27 */ 1763 { 0, 0x21, 0x40, aImplDBCSToUniTab_JIS0208_28 }, /* 0x28 */ 1764 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x29 */ /* We convert this as double byte */ 1765 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2A */ /* We convert this as double byte */ 1766 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2B */ /* We convert this as double byte */ 1767 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2C */ /* We convert this as double byte */ 1768 { 0, 0x21, 0x7C, aImplDBCSToUniTab_JIS0208_2D }, /* 0x2D */ 1769 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2E */ /* We convert this as double byte */ 1770 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2F */ /* We convert this as double byte */ 1771 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_30 }, /* 0x30 */ 1772 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_31 }, /* 0x31 */ 1773 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_32 }, /* 0x32 */ 1774 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_33 }, /* 0x33 */ 1775 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_34 }, /* 0x34 */ 1776 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_35 }, /* 0x35 */ 1777 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_36 }, /* 0x36 */ 1778 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_37 }, /* 0x37 */ 1779 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_38 }, /* 0x38 */ 1780 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_39 }, /* 0x39 */ 1781 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3A }, /* 0x3A */ 1782 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3B }, /* 0x3B */ 1783 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3C }, /* 0x3C */ 1784 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3D }, /* 0x3D */ 1785 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3E }, /* 0x3E */ 1786 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_3F }, /* 0x3F */ 1787 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_40 }, /* 0x40 */ 1788 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_41 }, /* 0x41 */ 1789 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_42 }, /* 0x42 */ 1790 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_43 }, /* 0x43 */ 1791 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_44 }, /* 0x44 */ 1792 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_45 }, /* 0x45 */ 1793 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_46 }, /* 0x46 */ 1794 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_47 }, /* 0x47 */ 1795 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_48 }, /* 0x48 */ 1796 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_49 }, /* 0x49 */ 1797 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4A }, /* 0x4A */ 1798 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4B }, /* 0x4B */ 1799 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4C }, /* 0x4C */ 1800 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4D }, /* 0x4D */ 1801 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_4E }, /* 0x4E */ 1802 { 0, 0x21, 0x53, aImplDBCSToUniTab_JIS0208_4F }, /* 0x4F */ 1803 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_50 }, /* 0x50 */ 1804 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_51 }, /* 0x51 */ 1805 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_52 }, /* 0x52 */ 1806 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_53 }, /* 0x53 */ 1807 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_54 }, /* 0x54 */ 1808 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_55 }, /* 0x55 */ 1809 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_56 }, /* 0x56 */ 1810 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_57 }, /* 0x57 */ 1811 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_58 }, /* 0x58 */ 1812 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_59 }, /* 0x59 */ 1813 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5A }, /* 0x5A */ 1814 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5B }, /* 0x5B */ 1815 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5C }, /* 0x5C */ 1816 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5D }, /* 0x5D */ 1817 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5E }, /* 0x5E */ 1818 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_5F }, /* 0x5F */ 1819 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_60 }, /* 0x60 */ 1820 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_61 }, /* 0x61 */ 1821 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_62 }, /* 0x62 */ 1822 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_63 }, /* 0x63 */ 1823 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_64 }, /* 0x64 */ 1824 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_65 }, /* 0x65 */ 1825 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_66 }, /* 0x66 */ 1826 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_67 }, /* 0x67 */ 1827 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_68 }, /* 0x68 */ 1828 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_69 }, /* 0x69 */ 1829 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6A }, /* 0x6A */ 1830 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6B }, /* 0x6B */ 1831 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6C }, /* 0x6C */ 1832 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6D }, /* 0x6D */ 1833 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6E }, /* 0x6E */ 1834 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_6F }, /* 0x6F */ 1835 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_70 }, /* 0x70 */ 1836 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_71 }, /* 0x71 */ 1837 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_72 }, /* 0x72 */ 1838 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0208_73 }, /* 0x73 */ 1839 { 0, 0x21, 0x26, aImplDBCSToUniTab_JIS0208_74 }, /* 0x74 */ 1840 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x75 */ /* We convert this as double byte */ 1841 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x76 */ /* We convert this as double byte */ 1842 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x77 */ /* We convert this as double byte */ 1843 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x78 */ /* We convert this as double byte */ 1844 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x79 */ /* We convert this as double byte */ 1845 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7A */ /* We convert this as double byte */ 1846 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7B */ /* We convert this as double byte */ 1847 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7C */ /* We convert this as double byte */ 1848 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7D */ /* We convert this as double byte */ 1849 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7E */ /* We convert this as double byte */ 1850 { 0, 1, 0, NULL } /* 0x7F */ 1851}; 1852 1853/* ----------------------------------------------------------------------- */ 1854 1855static ImplUniToDBCSHighTab const aJIS0208DBCSHighTab[256] = 1856{ 1857 { 0xA2, 0xF7, aImplUniToDBCSTab_JIS0208_00 }, /* 0x00 */ 1858 { 1, 0, NULL }, /* 0x01 */ 1859 { 1, 0, NULL }, /* 0x02 */ 1860 { 0x91, 0xC9, aImplUniToDBCSTab_JIS0208_03 }, /* 0x03 */ 1861 { 0x01, 0x51, aImplUniToDBCSTab_JIS0208_04 }, /* 0x04 */ 1862 { 1, 0, NULL }, /* 0x05 */ 1863 { 1, 0, NULL }, /* 0x06 */ 1864 { 1, 0, NULL }, /* 0x07 */ 1865 { 1, 0, NULL }, /* 0x08 */ 1866 { 1, 0, NULL }, /* 0x09 */ 1867 { 1, 0, NULL }, /* 0x0A */ 1868 { 1, 0, NULL }, /* 0x0B */ 1869 { 1, 0, NULL }, /* 0x0C */ 1870 { 1, 0, NULL }, /* 0x0D */ 1871 { 1, 0, NULL }, /* 0x0E */ 1872 { 1, 0, NULL }, /* 0x0F */ 1873 { 1, 0, NULL }, /* 0x10 */ 1874 { 1, 0, NULL }, /* 0x11 */ 1875 { 1, 0, NULL }, /* 0x12 */ 1876 { 1, 0, NULL }, /* 0x13 */ 1877 { 1, 0, NULL }, /* 0x14 */ 1878 { 1, 0, NULL }, /* 0x15 */ 1879 { 1, 0, NULL }, /* 0x16 */ 1880 { 1, 0, NULL }, /* 0x17 */ 1881 { 1, 0, NULL }, /* 0x18 */ 1882 { 1, 0, NULL }, /* 0x19 */ 1883 { 1, 0, NULL }, /* 0x1A */ 1884 { 1, 0, NULL }, /* 0x1B */ 1885 { 1, 0, NULL }, /* 0x1C */ 1886 { 1, 0, NULL }, /* 0x1D */ 1887 { 1, 0, NULL }, /* 0x1E */ 1888 { 1, 0, NULL }, /* 0x1F */ 1889 { 0x10, 0x3B, aImplUniToDBCSTab_JIS0208_20 }, /* 0x20 */ 1890 { 0x03, 0xD4, aImplUniToDBCSTab_JIS0208_21 }, /* 0x21 */ 1891 { 0x00, 0xBF, aImplUniToDBCSTab_JIS0208_22 }, /* 0x22 */ 1892 { 0x12, 0x12, aImplUniToDBCSTab_JIS0208_23 }, /* 0x23 */ 1893 { 0x60, 0x73, aImplUniToDBCSTab_JIS0208_24 }, /* 0x24 */ 1894 { 0x00, 0xEF, aImplUniToDBCSTab_JIS0208_25 }, /* 0x25 */ 1895 { 0x05, 0x6F, aImplUniToDBCSTab_JIS0208_26 }, /* 0x26 */ 1896 { 1, 0, NULL }, /* 0x27 */ 1897 { 1, 0, NULL }, /* 0x28 */ 1898 { 1, 0, NULL }, /* 0x29 */ 1899 { 1, 0, NULL }, /* 0x2A */ 1900 { 1, 0, NULL }, /* 0x2B */ 1901 { 1, 0, NULL }, /* 0x2C */ 1902 { 1, 0, NULL }, /* 0x2D */ 1903 { 1, 0, NULL }, /* 0x2E */ 1904 { 1, 0, NULL }, /* 0x2F */ 1905 { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_30 }, /* 0x30 */ 1906 { 1, 0, NULL }, /* 0x31 */ 1907 { 0x31, 0xA8, aImplUniToDBCSTab_JIS0208_32 }, /* 0x32 */ 1908 { 0x03, 0xCD, aImplUniToDBCSTab_JIS0208_33 }, /* 0x33 */ 1909 { 1, 0, NULL }, /* 0x34 */ 1910 { 1, 0, NULL }, /* 0x35 */ 1911 { 1, 0, NULL }, /* 0x36 */ 1912 { 1, 0, NULL }, /* 0x37 */ 1913 { 1, 0, NULL }, /* 0x38 */ 1914 { 1, 0, NULL }, /* 0x39 */ 1915 { 1, 0, NULL }, /* 0x3A */ 1916 { 1, 0, NULL }, /* 0x3B */ 1917 { 1, 0, NULL }, /* 0x3C */ 1918 { 1, 0, NULL }, /* 0x3D */ 1919 { 1, 0, NULL }, /* 0x3E */ 1920 { 1, 0, NULL }, /* 0x3F */ 1921 { 1, 0, NULL }, /* 0x40 */ 1922 { 1, 0, NULL }, /* 0x41 */ 1923 { 1, 0, NULL }, /* 0x42 */ 1924 { 1, 0, NULL }, /* 0x43 */ 1925 { 1, 0, NULL }, /* 0x44 */ 1926 { 1, 0, NULL }, /* 0x45 */ 1927 { 1, 0, NULL }, /* 0x46 */ 1928 { 1, 0, NULL }, /* 0x47 */ 1929 { 1, 0, NULL }, /* 0x48 */ 1930 { 1, 0, NULL }, /* 0x49 */ 1931 { 1, 0, NULL }, /* 0x4A */ 1932 { 1, 0, NULL }, /* 0x4B */ 1933 { 1, 0, NULL }, /* 0x4C */ 1934 { 1, 0, NULL }, /* 0x4D */ 1935 { 0x00, 0xFB, aImplUniToDBCSTab_JIS0208_4E }, /* 0x4E */ 1936 { 0x01, 0xFE, aImplUniToDBCSTab_JIS0208_4F }, /* 0x4F */ 1937 { 0x05, 0xFB, aImplUniToDBCSTab_JIS0208_50 }, /* 0x50 */ 1938 { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_51 }, /* 0x51 */ 1939 { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_52 }, /* 0x52 */ 1940 { 0x01, 0xFA, aImplUniToDBCSTab_JIS0208_53 }, /* 0x53 */ 1941 { 0x01, 0xFD, aImplUniToDBCSTab_JIS0208_54 }, /* 0x54 */ 1942 { 0x04, 0xFE, aImplUniToDBCSTab_JIS0208_55 }, /* 0x55 */ 1943 { 0x06, 0xFF, aImplUniToDBCSTab_JIS0208_56 }, /* 0x56 */ 1944 { 0x00, 0xFC, aImplUniToDBCSTab_JIS0208_57 }, /* 0x57 */ 1945 { 0x00, 0xFD, aImplUniToDBCSTab_JIS0208_58 }, /* 0x58 */ 1946 { 0x02, 0xFF, aImplUniToDBCSTab_JIS0208_59 }, /* 0x59 */ 1947 { 0x01, 0xFB, aImplUniToDBCSTab_JIS0208_5A }, /* 0x5A */ 1948 { 0x09, 0xFF, aImplUniToDBCSTab_JIS0208_5B }, /* 0x5B */ 1949 { 0x01, 0xFD, aImplUniToDBCSTab_JIS0208_5C }, /* 0x5C */ 1950 { 0x07, 0xFE, aImplUniToDBCSTab_JIS0208_5D }, /* 0x5D */ 1951 { 0x02, 0xFF, aImplUniToDBCSTab_JIS0208_5E }, /* 0x5E */ 1952 { 0x01, 0xFF, aImplUniToDBCSTab_JIS0208_5F }, /* 0x5F */ 1953 { 0x0E, 0xFB, aImplUniToDBCSTab_JIS0208_60 }, /* 0x60 */ 1954 { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_61 }, /* 0x61 */ 1955 { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_62 }, /* 0x62 */ 1956 { 0x01, 0xFA, aImplUniToDBCSTab_JIS0208_63 }, /* 0x63 */ 1957 { 0x06, 0xFE, aImplUniToDBCSTab_JIS0208_64 }, /* 0x64 */ 1958 { 0x00, 0xFB, aImplUniToDBCSTab_JIS0208_65 }, /* 0x65 */ 1959 { 0x02, 0xFF, aImplUniToDBCSTab_JIS0208_66 }, /* 0x66 */ 1960 { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_67 }, /* 0x67 */ 1961 { 0x02, 0xFA, aImplUniToDBCSTab_JIS0208_68 }, /* 0x68 */ 1962 { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_69 }, /* 0x69 */ 1963 { 0x02, 0xFB, aImplUniToDBCSTab_JIS0208_6A }, /* 0x6A */ 1964 { 0x04, 0xF3, aImplUniToDBCSTab_JIS0208_6B }, /* 0x6B */ 1965 { 0x08, 0xF3, aImplUniToDBCSTab_JIS0208_6C }, /* 0x6C */ 1966 { 0x0B, 0xFB, aImplUniToDBCSTab_JIS0208_6D }, /* 0x6D */ 1967 { 0x05, 0xFF, aImplUniToDBCSTab_JIS0208_6E }, /* 0x6E */ 1968 { 0x01, 0xFE, aImplUniToDBCSTab_JIS0208_6F }, /* 0x6F */ 1969 { 0x01, 0xFD, aImplUniToDBCSTab_JIS0208_70 }, /* 0x70 */ 1970 { 0x09, 0xFF, aImplUniToDBCSTab_JIS0208_71 }, /* 0x71 */ 1971 { 0x06, 0xFD, aImplUniToDBCSTab_JIS0208_72 }, /* 0x72 */ 1972 { 0x0A, 0xFE, aImplUniToDBCSTab_JIS0208_73 }, /* 0x73 */ 1973 { 0x03, 0xF8, aImplUniToDBCSTab_JIS0208_74 }, /* 0x74 */ 1974 { 0x03, 0xFF, aImplUniToDBCSTab_JIS0208_75 }, /* 0x75 */ 1975 { 0x01, 0xFE, aImplUniToDBCSTab_JIS0208_76 }, /* 0x76 */ 1976 { 0x01, 0xFC, aImplUniToDBCSTab_JIS0208_77 }, /* 0x77 */ 1977 { 0x02, 0xFD, aImplUniToDBCSTab_JIS0208_78 }, /* 0x78 */ 1978 { 0x01, 0xFB, aImplUniToDBCSTab_JIS0208_79 }, /* 0x79 */ 1979 { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_7A }, /* 0x7A */ 1980 { 0x02, 0xF7, aImplUniToDBCSTab_JIS0208_7B }, /* 0x7B */ 1981 { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_7C }, /* 0x7C */ 1982 { 0x00, 0xFB, aImplUniToDBCSTab_JIS0208_7D }, /* 0x7D */ 1983 { 0x01, 0x9C, aImplUniToDBCSTab_JIS0208_7E }, /* 0x7E */ 1984 { 0x36, 0xFC, aImplUniToDBCSTab_JIS0208_7F }, /* 0x7F */ 1985 { 0x00, 0xFD, aImplUniToDBCSTab_JIS0208_80 }, /* 0x80 */ 1986 { 0x02, 0xFE, aImplUniToDBCSTab_JIS0208_81 }, /* 0x81 */ 1987 { 0x01, 0xFB, aImplUniToDBCSTab_JIS0208_82 }, /* 0x82 */ 1988 { 0x02, 0xFD, aImplUniToDBCSTab_JIS0208_83 }, /* 0x83 */ 1989 { 0x03, 0xFF, aImplUniToDBCSTab_JIS0208_84 }, /* 0x84 */ 1990 { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_85 }, /* 0x85 */ 1991 { 0x02, 0xFE, aImplUniToDBCSTab_JIS0208_86 }, /* 0x86 */ 1992 { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_87 }, /* 0x87 */ 1993 { 0x05, 0xFE, aImplUniToDBCSTab_JIS0208_88 }, /* 0x88 */ 1994 { 0x02, 0xF8, aImplUniToDBCSTab_JIS0208_89 }, /* 0x89 */ 1995 { 0x00, 0xFE, aImplUniToDBCSTab_JIS0208_8A }, /* 0x8A */ 1996 { 0x00, 0x9A, aImplUniToDBCSTab_JIS0208_8B }, /* 0x8B */ 1997 { 0x37, 0xFD, aImplUniToDBCSTab_JIS0208_8C }, /* 0x8C */ 1998 { 0x04, 0xFF, aImplUniToDBCSTab_JIS0208_8D }, /* 0x8D */ 1999 { 0x08, 0xFE, aImplUniToDBCSTab_JIS0208_8E }, /* 0x8E */ 2000 { 0x03, 0xFD, aImplUniToDBCSTab_JIS0208_8F }, /* 0x8F */ 2001 { 0x00, 0xFD, aImplUniToDBCSTab_JIS0208_90 }, /* 0x90 */ 2002 { 0x02, 0xFF, aImplUniToDBCSTab_JIS0208_91 }, /* 0x91 */ 2003 { 0x0D, 0xFC, aImplUniToDBCSTab_JIS0208_92 }, /* 0x92 */ 2004 { 0x06, 0xE8, aImplUniToDBCSTab_JIS0208_93 }, /* 0x93 */ 2005 { 0x03, 0x81, aImplUniToDBCSTab_JIS0208_94 }, /* 0x94 */ 2006 { 0x77, 0xE5, aImplUniToDBCSTab_JIS0208_95 }, /* 0x95 */ 2007 { 0x1C, 0xFB, aImplUniToDBCSTab_JIS0208_96 }, /* 0x96 */ 2008 { 0x00, 0xFF, aImplUniToDBCSTab_JIS0208_97 }, /* 0x97 */ 2009 { 0x01, 0xFE, aImplUniToDBCSTab_JIS0208_98 }, /* 0x98 */ 2010 { 0x03, 0xFF, aImplUniToDBCSTab_JIS0208_99 }, /* 0x99 */ 2011 { 0x01, 0xFB, aImplUniToDBCSTab_JIS0208_9A }, /* 0x9A */ 2012 { 0x06, 0xF5, aImplUniToDBCSTab_JIS0208_9B }, /* 0x9B */ 2013 { 0x04, 0xF6, aImplUniToDBCSTab_JIS0208_9C }, /* 0x9C */ 2014 { 0x03, 0xFD, aImplUniToDBCSTab_JIS0208_9D }, /* 0x9D */ 2015 { 0x1A, 0xFD, aImplUniToDBCSTab_JIS0208_9E }, /* 0x9E */ 2016 { 0x07, 0xA0, aImplUniToDBCSTab_JIS0208_9F }, /* 0x9F */ 2017 { 1, 0, NULL }, /* 0xA0 */ 2018 { 1, 0, NULL }, /* 0xA1 */ 2019 { 1, 0, NULL }, /* 0xA2 */ 2020 { 1, 0, NULL }, /* 0xA3 */ 2021 { 1, 0, NULL }, /* 0xA4 */ 2022 { 1, 0, NULL }, /* 0xA5 */ 2023 { 1, 0, NULL }, /* 0xA6 */ 2024 { 1, 0, NULL }, /* 0xA7 */ 2025 { 1, 0, NULL }, /* 0xA8 */ 2026 { 1, 0, NULL }, /* 0xA9 */ 2027 { 1, 0, NULL }, /* 0xAA */ 2028 { 1, 0, NULL }, /* 0xAB */ 2029 { 1, 0, NULL }, /* 0xAC */ 2030 { 1, 0, NULL }, /* 0xAD */ 2031 { 1, 0, NULL }, /* 0xAE */ 2032 { 1, 0, NULL }, /* 0xAF */ 2033 { 1, 0, NULL }, /* 0xB0 */ 2034 { 1, 0, NULL }, /* 0xB1 */ 2035 { 1, 0, NULL }, /* 0xB2 */ 2036 { 1, 0, NULL }, /* 0xB3 */ 2037 { 1, 0, NULL }, /* 0xB4 */ 2038 { 1, 0, NULL }, /* 0xB5 */ 2039 { 1, 0, NULL }, /* 0xB6 */ 2040 { 1, 0, NULL }, /* 0xB7 */ 2041 { 1, 0, NULL }, /* 0xB8 */ 2042 { 1, 0, NULL }, /* 0xB9 */ 2043 { 1, 0, NULL }, /* 0xBA */ 2044 { 1, 0, NULL }, /* 0xBB */ 2045 { 1, 0, NULL }, /* 0xBC */ 2046 { 1, 0, NULL }, /* 0xBD */ 2047 { 1, 0, NULL }, /* 0xBE */ 2048 { 1, 0, NULL }, /* 0xBF */ 2049 { 1, 0, NULL }, /* 0xC0 */ 2050 { 1, 0, NULL }, /* 0xC1 */ 2051 { 1, 0, NULL }, /* 0xC2 */ 2052 { 1, 0, NULL }, /* 0xC3 */ 2053 { 1, 0, NULL }, /* 0xC4 */ 2054 { 1, 0, NULL }, /* 0xC5 */ 2055 { 1, 0, NULL }, /* 0xC6 */ 2056 { 1, 0, NULL }, /* 0xC7 */ 2057 { 1, 0, NULL }, /* 0xC8 */ 2058 { 1, 0, NULL }, /* 0xC9 */ 2059 { 1, 0, NULL }, /* 0xCA */ 2060 { 1, 0, NULL }, /* 0xCB */ 2061 { 1, 0, NULL }, /* 0xCC */ 2062 { 1, 0, NULL }, /* 0xCD */ 2063 { 1, 0, NULL }, /* 0xCE */ 2064 { 1, 0, NULL }, /* 0xCF */ 2065 { 1, 0, NULL }, /* 0xD0 */ 2066 { 1, 0, NULL }, /* 0xD1 */ 2067 { 1, 0, NULL }, /* 0xD2 */ 2068 { 1, 0, NULL }, /* 0xD3 */ 2069 { 1, 0, NULL }, /* 0xD4 */ 2070 { 1, 0, NULL }, /* 0xD5 */ 2071 { 1, 0, NULL }, /* 0xD6 */ 2072 { 1, 0, NULL }, /* 0xD7 */ 2073 { 1, 0, NULL }, /* 0xD8 */ 2074 { 1, 0, NULL }, /* 0xD9 */ 2075 { 1, 0, NULL }, /* 0xDA */ 2076 { 1, 0, NULL }, /* 0xDB */ 2077 { 1, 0, NULL }, /* 0xDC */ 2078 { 1, 0, NULL }, /* 0xDD */ 2079 { 1, 0, NULL }, /* 0xDE */ 2080 { 1, 0, NULL }, /* 0xDF */ 2081 { 1, 0, NULL }, /* 0xE0 */ 2082 { 1, 0, NULL }, /* 0xE1 */ 2083 { 1, 0, NULL }, /* 0xE2 */ 2084 { 1, 0, NULL }, /* 0xE3 */ 2085 { 1, 0, NULL }, /* 0xE4 */ 2086 { 1, 0, NULL }, /* 0xE5 */ 2087 { 1, 0, NULL }, /* 0xE6 */ 2088 { 1, 0, NULL }, /* 0xE7 */ 2089 { 1, 0, NULL }, /* 0xE8 */ 2090 { 1, 0, NULL }, /* 0xE9 */ 2091 { 1, 0, NULL }, /* 0xEA */ 2092 { 1, 0, NULL }, /* 0xEB */ 2093 { 1, 0, NULL }, /* 0xEC */ 2094 { 1, 0, NULL }, /* 0xED */ 2095 { 1, 0, NULL }, /* 0xEE */ 2096 { 1, 0, NULL }, /* 0xEF */ 2097 { 1, 0, NULL }, /* 0xF0 */ 2098 { 1, 0, NULL }, /* 0xF1 */ 2099 { 1, 0, NULL }, /* 0xF2 */ 2100 { 1, 0, NULL }, /* 0xF3 */ 2101 { 1, 0, NULL }, /* 0xF4 */ 2102 { 1, 0, NULL }, /* 0xF5 */ 2103 { 1, 0, NULL }, /* 0xF6 */ 2104 { 1, 0, NULL }, /* 0xF7 */ 2105 { 1, 0, NULL }, /* 0xF8 */ 2106 { 1, 0, NULL }, /* 0xF9 */ 2107 { 1, 0, NULL }, /* 0xFA */ 2108 { 1, 0, NULL }, /* 0xFB */ 2109 { 1, 0, NULL }, /* 0xFC */ 2110 { 1, 0, NULL }, /* 0xFD */ 2111 { 1, 0, NULL }, /* 0xFE */ 2112 { 0x01, 0xE5, aImplUniToDBCSTab_JIS0208_FF } /* 0xFF */ 2113}; 2114 2115/* ----------------------------------------------------------------------- */ 2116 2117static ImplDBCSToUniLeadTab const aJIS0212UniLeadTab[128] = 2118{ 2119 { 0, 1, 0, NULL }, /* 0x00 */ 2120 { 0, 1, 0, NULL }, /* 0x01 */ 2121 { 0, 1, 0, NULL }, /* 0x02 */ 2122 { 0, 1, 0, NULL }, /* 0x03 */ 2123 { 0, 1, 0, NULL }, /* 0x04 */ 2124 { 0, 1, 0, NULL }, /* 0x05 */ 2125 { 0, 1, 0, NULL }, /* 0x06 */ 2126 { 0, 1, 0, NULL }, /* 0x07 */ 2127 { 0, 1, 0, NULL }, /* 0x08 */ 2128 { 0, 1, 0, NULL }, /* 0x09 */ 2129 { 0, 1, 0, NULL }, /* 0x0A */ 2130 { 0, 1, 0, NULL }, /* 0x0B */ 2131 { 0, 1, 0, NULL }, /* 0x0C */ 2132 { 0, 1, 0, NULL }, /* 0x0D */ 2133 { 0, 1, 0, NULL }, /* 0x0E */ 2134 { 0, 1, 0, NULL }, /* 0x0F */ 2135 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x10 */ /* We convert this as double byte */ 2136 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x11 */ /* We convert this as double byte */ 2137 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x12 */ /* We convert this as double byte */ 2138 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x13 */ /* We convert this as double byte */ 2139 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x14 */ /* We convert this as double byte */ 2140 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x15 */ /* We convert this as double byte */ 2141 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x16 */ /* We convert this as double byte */ 2142 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x17 */ /* We convert this as double byte */ 2143 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x18 */ /* We convert this as double byte */ 2144 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x19 */ /* We convert this as double byte */ 2145 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1A */ /* We convert this as double byte */ 2146 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1B */ /* We convert this as double byte */ 2147 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1C */ /* We convert this as double byte */ 2148 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1D */ /* We convert this as double byte */ 2149 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1E */ /* We convert this as double byte */ 2150 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x1F */ /* We convert this as double byte */ 2151 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x20 */ /* We convert this as double byte */ 2152 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x21 */ /* We convert this as double byte */ 2153 { 0, 0x2F, 0x71, aImplDBCSToUniTab_JIS0212_22 }, /* 0x22 */ 2154 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x23 */ /* We convert this as double byte */ 2155 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x24 */ /* We convert this as double byte */ 2156 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x25 */ /* We convert this as double byte */ 2157 { 0, 0x61, 0x7C, aImplDBCSToUniTab_JIS0212_26 }, /* 0x26 */ 2158 { 0, 0x42, 0x7E, aImplDBCSToUniTab_JIS0212_27 }, /* 0x27 */ 2159 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x28 */ /* We convert this as double byte */ 2160 { 0, 0x21, 0x50, aImplDBCSToUniTab_JIS0212_29 }, /* 0x29 */ 2161 { 0, 0x21, 0x77, aImplDBCSToUniTab_JIS0212_2A }, /* 0x2A */ 2162 { 0, 0x21, 0x77, aImplDBCSToUniTab_JIS0212_2B }, /* 0x2B */ 2163 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2C */ /* We convert this as double byte */ 2164 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2D */ /* We convert this as double byte */ 2165 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2E */ /* We convert this as double byte */ 2166 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x2F */ /* We convert this as double byte */ 2167 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_30 }, /* 0x30 */ 2168 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_31 }, /* 0x31 */ 2169 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_32 }, /* 0x32 */ 2170 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_33 }, /* 0x33 */ 2171 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_34 }, /* 0x34 */ 2172 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_35 }, /* 0x35 */ 2173 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_36 }, /* 0x36 */ 2174 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_37 }, /* 0x37 */ 2175 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_38 }, /* 0x38 */ 2176 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_39 }, /* 0x39 */ 2177 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3A }, /* 0x3A */ 2178 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3B }, /* 0x3B */ 2179 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3C }, /* 0x3C */ 2180 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3D }, /* 0x3D */ 2181 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3E }, /* 0x3E */ 2182 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_3F }, /* 0x3F */ 2183 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_40 }, /* 0x40 */ 2184 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_41 }, /* 0x41 */ 2185 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_42 }, /* 0x42 */ 2186 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_43 }, /* 0x43 */ 2187 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_44 }, /* 0x44 */ 2188 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_45 }, /* 0x45 */ 2189 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_46 }, /* 0x46 */ 2190 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_47 }, /* 0x47 */ 2191 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_48 }, /* 0x48 */ 2192 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_49 }, /* 0x49 */ 2193 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4A }, /* 0x4A */ 2194 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4B }, /* 0x4B */ 2195 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4C }, /* 0x4C */ 2196 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4D }, /* 0x4D */ 2197 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4E }, /* 0x4E */ 2198 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_4F }, /* 0x4F */ 2199 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_50 }, /* 0x50 */ 2200 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_51 }, /* 0x51 */ 2201 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_52 }, /* 0x52 */ 2202 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_53 }, /* 0x53 */ 2203 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_54 }, /* 0x54 */ 2204 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_55 }, /* 0x55 */ 2205 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_56 }, /* 0x56 */ 2206 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_57 }, /* 0x57 */ 2207 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_58 }, /* 0x58 */ 2208 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_59 }, /* 0x59 */ 2209 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5A }, /* 0x5A */ 2210 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5B }, /* 0x5B */ 2211 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5C }, /* 0x5C */ 2212 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5D }, /* 0x5D */ 2213 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5E }, /* 0x5E */ 2214 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_5F }, /* 0x5F */ 2215 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_60 }, /* 0x60 */ 2216 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_61 }, /* 0x61 */ 2217 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_62 }, /* 0x62 */ 2218 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_63 }, /* 0x63 */ 2219 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_64 }, /* 0x64 */ 2220 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_65 }, /* 0x65 */ 2221 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_66 }, /* 0x66 */ 2222 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_67 }, /* 0x67 */ 2223 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_68 }, /* 0x68 */ 2224 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_69 }, /* 0x69 */ 2225 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_6A }, /* 0x6A */ 2226 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_6B }, /* 0x6B */ 2227 { 0, 0x21, 0x7E, aImplDBCSToUniTab_JIS0212_6C }, /* 0x6C */ 2228 { 0, 0x21, 0x63, aImplDBCSToUniTab_JIS0212_6D }, /* 0x6D */ 2229 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x6E */ /* We convert this as double byte */ 2230 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x6F */ /* We convert this as double byte */ 2231 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x70 */ /* We convert this as double byte */ 2232 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x71 */ /* We convert this as double byte */ 2233 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x72 */ /* We convert this as double byte */ 2234 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x73 */ /* We convert this as double byte */ 2235 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x74 */ /* We convert this as double byte */ 2236 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x75 */ /* We convert this as double byte */ 2237 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x76 */ /* We convert this as double byte */ 2238 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x77 */ /* We convert this as double byte */ 2239 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x78 */ /* We convert this as double byte */ 2240 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x79 */ /* We convert this as double byte */ 2241 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7A */ /* We convert this as double byte */ 2242 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7B */ /* We convert this as double byte */ 2243 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7C */ /* We convert this as double byte */ 2244 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7D */ /* We convert this as double byte */ 2245 { 0, 1, 0, aImplDoubleByteIdentifierTab }, /* 0x7E */ /* We convert this as double byte */ 2246 { 0, 1, 0, NULL } /* 0x7F */ 2247}; 2248 2249/* ----------------------------------------------------------------------- */ 2250 2251static ImplUniToDBCSHighTab const aJIS0212DBCSHighTab[256] = 2252{ 2253 { 0xA1, 0xFF, aImplUniToDBCSTab_JIS0212_00 }, /* 0x00 */ 2254 { 0x00, 0xF5, aImplUniToDBCSTab_JIS0212_01 }, /* 0x01 */ 2255 { 0xC7, 0xDD, aImplUniToDBCSTab_JIS0212_02 }, /* 0x02 */ 2256 { 0x84, 0xCE, aImplUniToDBCSTab_JIS0212_03 }, /* 0x03 */ 2257 { 0x02, 0x5F, aImplUniToDBCSTab_JIS0212_04 }, /* 0x04 */ 2258 { 1, 0, NULL }, /* 0x05 */ 2259 { 1, 0, NULL }, /* 0x06 */ 2260 { 1, 0, NULL }, /* 0x07 */ 2261 { 1, 0, NULL }, /* 0x08 */ 2262 { 1, 0, NULL }, /* 0x09 */ 2263 { 1, 0, NULL }, /* 0x0A */ 2264 { 1, 0, NULL }, /* 0x0B */ 2265 { 1, 0, NULL }, /* 0x0C */ 2266 { 1, 0, NULL }, /* 0x0D */ 2267 { 1, 0, NULL }, /* 0x0E */ 2268 { 1, 0, NULL }, /* 0x0F */ 2269 { 1, 0, NULL }, /* 0x10 */ 2270 { 1, 0, NULL }, /* 0x11 */ 2271 { 1, 0, NULL }, /* 0x12 */ 2272 { 1, 0, NULL }, /* 0x13 */ 2273 { 1, 0, NULL }, /* 0x14 */ 2274 { 1, 0, NULL }, /* 0x15 */ 2275 { 1, 0, NULL }, /* 0x16 */ 2276 { 1, 0, NULL }, /* 0x17 */ 2277 { 1, 0, NULL }, /* 0x18 */ 2278 { 1, 0, NULL }, /* 0x19 */ 2279 { 1, 0, NULL }, /* 0x1A */ 2280 { 1, 0, NULL }, /* 0x1B */ 2281 { 1, 0, NULL }, /* 0x1C */ 2282 { 1, 0, NULL }, /* 0x1D */ 2283 { 1, 0, NULL }, /* 0x1E */ 2284 { 1, 0, NULL }, /* 0x1F */ 2285 { 1, 0, NULL }, /* 0x20 */ 2286 { 0x16, 0x22, aImplUniToDBCSTab_JIS0212_21 }, /* 0x21 */ 2287 { 1, 0, NULL }, /* 0x22 */ 2288 { 1, 0, NULL }, /* 0x23 */ 2289 { 1, 0, NULL }, /* 0x24 */ 2290 { 1, 0, NULL }, /* 0x25 */ 2291 { 1, 0, NULL }, /* 0x26 */ 2292 { 1, 0, NULL }, /* 0x27 */ 2293 { 1, 0, NULL }, /* 0x28 */ 2294 { 1, 0, NULL }, /* 0x29 */ 2295 { 1, 0, NULL }, /* 0x2A */ 2296 { 1, 0, NULL }, /* 0x2B */ 2297 { 1, 0, NULL }, /* 0x2C */ 2298 { 1, 0, NULL }, /* 0x2D */ 2299 { 1, 0, NULL }, /* 0x2E */ 2300 { 1, 0, NULL }, /* 0x2F */ 2301 { 1, 0, NULL }, /* 0x30 */ 2302 { 1, 0, NULL }, /* 0x31 */ 2303 { 1, 0, NULL }, /* 0x32 */ 2304 { 1, 0, NULL }, /* 0x33 */ 2305 { 1, 0, NULL }, /* 0x34 */ 2306 { 1, 0, NULL }, /* 0x35 */ 2307 { 1, 0, NULL }, /* 0x36 */ 2308 { 1, 0, NULL }, /* 0x37 */ 2309 { 1, 0, NULL }, /* 0x38 */ 2310 { 1, 0, NULL }, /* 0x39 */ 2311 { 1, 0, NULL }, /* 0x3A */ 2312 { 1, 0, NULL }, /* 0x3B */ 2313 { 1, 0, NULL }, /* 0x3C */ 2314 { 1, 0, NULL }, /* 0x3D */ 2315 { 1, 0, NULL }, /* 0x3E */ 2316 { 1, 0, NULL }, /* 0x3F */ 2317 { 1, 0, NULL }, /* 0x40 */ 2318 { 1, 0, NULL }, /* 0x41 */ 2319 { 1, 0, NULL }, /* 0x42 */ 2320 { 1, 0, NULL }, /* 0x43 */ 2321 { 1, 0, NULL }, /* 0x44 */ 2322 { 1, 0, NULL }, /* 0x45 */ 2323 { 1, 0, NULL }, /* 0x46 */ 2324 { 1, 0, NULL }, /* 0x47 */ 2325 { 1, 0, NULL }, /* 0x48 */ 2326 { 1, 0, NULL }, /* 0x49 */ 2327 { 1, 0, NULL }, /* 0x4A */ 2328 { 1, 0, NULL }, /* 0x4B */ 2329 { 1, 0, NULL }, /* 0x4C */ 2330 { 1, 0, NULL }, /* 0x4D */ 2331 { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_4E }, /* 0x4E */ 2332 { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_4F }, /* 0x4F */ 2333 { 0x00, 0xFE, aImplUniToDBCSTab_JIS0212_50 }, /* 0x50 */ 2334 { 0x03, 0xF7, aImplUniToDBCSTab_JIS0212_51 }, /* 0x51 */ 2335 { 0x01, 0xF7, aImplUniToDBCSTab_JIS0212_52 }, /* 0x52 */ 2336 { 0x00, 0xF5, aImplUniToDBCSTab_JIS0212_53 }, /* 0x53 */ 2337 { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_54 }, /* 0x54 */ 2338 { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_55 }, /* 0x55 */ 2339 { 0x05, 0xF7, aImplUniToDBCSTab_JIS0212_56 }, /* 0x56 */ 2340 { 0x01, 0xFF, aImplUniToDBCSTab_JIS0212_57 }, /* 0x57 */ 2341 { 0x03, 0xF3, aImplUniToDBCSTab_JIS0212_58 }, /* 0x58 */ 2342 { 0x05, 0xF7, aImplUniToDBCSTab_JIS0212_59 }, /* 0x59 */ 2343 { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_5A }, /* 0x5A */ 2344 { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_5B }, /* 0x5B */ 2345 { 0x0C, 0xF4, aImplUniToDBCSTab_JIS0212_5C }, /* 0x5C */ 2346 { 0x01, 0xF9, aImplUniToDBCSTab_JIS0212_5D }, /* 0x5D */ 2347 { 0x00, 0xEB, aImplUniToDBCSTab_JIS0212_5E }, /* 0x5E */ 2348 { 0x02, 0xFC, aImplUniToDBCSTab_JIS0212_5F }, /* 0x5F */ 2349 { 0x07, 0xFD, aImplUniToDBCSTab_JIS0212_60 }, /* 0x60 */ 2350 { 0x02, 0xEF, aImplUniToDBCSTab_JIS0212_61 }, /* 0x61 */ 2351 { 0x01, 0xFD, aImplUniToDBCSTab_JIS0212_62 }, /* 0x62 */ 2352 { 0x03, 0xF9, aImplUniToDBCSTab_JIS0212_63 }, /* 0x63 */ 2353 { 0x09, 0xFF, aImplUniToDBCSTab_JIS0212_64 }, /* 0x64 */ 2354 { 0x01, 0xFF, aImplUniToDBCSTab_JIS0212_65 }, /* 0x65 */ 2355 { 0x00, 0xFB, aImplUniToDBCSTab_JIS0212_66 }, /* 0x66 */ 2356 { 0x05, 0xF9, aImplUniToDBCSTab_JIS0212_67 }, /* 0x67 */ 2357 { 0x04, 0xFD, aImplUniToDBCSTab_JIS0212_68 }, /* 0x68 */ 2358 { 0x06, 0xFE, aImplUniToDBCSTab_JIS0212_69 }, /* 0x69 */ 2359 { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_6A }, /* 0x6A */ 2360 { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_6B }, /* 0x6B */ 2361 { 0x02, 0xF4, aImplUniToDBCSTab_JIS0212_6C }, /* 0x6C */ 2362 { 0x04, 0xFC, aImplUniToDBCSTab_JIS0212_6D }, /* 0x6D */ 2363 { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_6E }, /* 0x6E */ 2364 { 0x04, 0xFD, aImplUniToDBCSTab_JIS0212_6F }, /* 0x6F */ 2365 { 0x00, 0xFA, aImplUniToDBCSTab_JIS0212_70 }, /* 0x70 */ 2366 { 0x03, 0xFE, aImplUniToDBCSTab_JIS0212_71 }, /* 0x71 */ 2367 { 0x00, 0xFE, aImplUniToDBCSTab_JIS0212_72 }, /* 0x72 */ 2368 { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_73 }, /* 0x73 */ 2369 { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_74 }, /* 0x74 */ 2370 { 0x06, 0xF9, aImplUniToDBCSTab_JIS0212_75 }, /* 0x75 */ 2371 { 0x00, 0xFC, aImplUniToDBCSTab_JIS0212_76 }, /* 0x76 */ 2372 { 0x00, 0xFB, aImplUniToDBCSTab_JIS0212_77 }, /* 0x77 */ 2373 { 0x05, 0xFF, aImplUniToDBCSTab_JIS0212_78 }, /* 0x78 */ 2374 { 0x00, 0xFC, aImplUniToDBCSTab_JIS0212_79 }, /* 0x79 */ 2375 { 0x02, 0xFE, aImplUniToDBCSTab_JIS0212_7A }, /* 0x7A */ 2376 { 0x07, 0xFE, aImplUniToDBCSTab_JIS0212_7B }, /* 0x7B */ 2377 { 0x01, 0xF5, aImplUniToDBCSTab_JIS0212_7C }, /* 0x7C */ 2378 { 0x03, 0xFA, aImplUniToDBCSTab_JIS0212_7D }, /* 0x7D */ 2379 { 0x00, 0x9E, aImplUniToDBCSTab_JIS0212_7E }, /* 0x7E */ 2380 { 0x3B, 0xFF, aImplUniToDBCSTab_JIS0212_7F }, /* 0x7F */ 2381 { 0x07, 0xFE, aImplUniToDBCSTab_JIS0212_80 }, /* 0x80 */ 2382 { 0x03, 0xFF, aImplUniToDBCSTab_JIS0212_81 }, /* 0x81 */ 2383 { 0x00, 0xFE, aImplUniToDBCSTab_JIS0212_82 }, /* 0x82 */ 2384 { 0x00, 0xFC, aImplUniToDBCSTab_JIS0212_83 }, /* 0x83 */ 2385 { 0x01, 0xFD, aImplUniToDBCSTab_JIS0212_84 }, /* 0x84 */ 2386 { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_85 }, /* 0x85 */ 2387 { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_86 }, /* 0x86 */ 2388 { 0x04, 0xFF, aImplUniToDBCSTab_JIS0212_87 }, /* 0x87 */ 2389 { 0x01, 0xF7, aImplUniToDBCSTab_JIS0212_88 }, /* 0x88 */ 2390 { 0x01, 0xFF, aImplUniToDBCSTab_JIS0212_89 }, /* 0x89 */ 2391 { 0x04, 0xFF, aImplUniToDBCSTab_JIS0212_8A }, /* 0x8A */ 2392 { 0x05, 0x9F, aImplUniToDBCSTab_JIS0212_8B }, /* 0x8B */ 2393 { 0x38, 0xFF, aImplUniToDBCSTab_JIS0212_8C }, /* 0x8C */ 2394 { 0x01, 0xFD, aImplUniToDBCSTab_JIS0212_8D }, /* 0x8D */ 2395 { 0x01, 0xFA, aImplUniToDBCSTab_JIS0212_8E }, /* 0x8E */ 2396 { 0x00, 0xFE, aImplUniToDBCSTab_JIS0212_8F }, /* 0x8F */ 2397 { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_90 }, /* 0x90 */ 2398 { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_91 }, /* 0x91 */ 2399 { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_92 }, /* 0x92 */ 2400 { 0x00, 0xFD, aImplUniToDBCSTab_JIS0212_93 }, /* 0x93 */ 2401 { 0x01, 0x84, aImplUniToDBCSTab_JIS0212_94 }, /* 0x94 */ 2402 { 0x78, 0xE6, aImplUniToDBCSTab_JIS0212_95 }, /* 0x95 */ 2403 { 0x1D, 0xFA, aImplUniToDBCSTab_JIS0212_96 }, /* 0x96 */ 2404 { 0x02, 0xFA, aImplUniToDBCSTab_JIS0212_97 }, /* 0x97 */ 2405 { 0x07, 0xF6, aImplUniToDBCSTab_JIS0212_98 }, /* 0x98 */ 2406 { 0x02, 0xFE, aImplUniToDBCSTab_JIS0212_99 }, /* 0x99 */ 2407 { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_9A }, /* 0x9A */ 2408 { 0x00, 0xFF, aImplUniToDBCSTab_JIS0212_9B }, /* 0x9B */ 2409 { 0x00, 0xF9, aImplUniToDBCSTab_JIS0212_9C }, /* 0x9C */ 2410 { 0x02, 0xFE, aImplUniToDBCSTab_JIS0212_9D }, /* 0x9D */ 2411 { 0x02, 0xFF, aImplUniToDBCSTab_JIS0212_9E }, /* 0x9E */ 2412 { 0x02, 0xA5, aImplUniToDBCSTab_JIS0212_9F }, /* 0x9F */ 2413 { 1, 0, NULL }, /* 0xA0 */ 2414 { 1, 0, NULL }, /* 0xA1 */ 2415 { 1, 0, NULL }, /* 0xA2 */ 2416 { 1, 0, NULL }, /* 0xA3 */ 2417 { 1, 0, NULL }, /* 0xA4 */ 2418 { 1, 0, NULL }, /* 0xA5 */ 2419 { 1, 0, NULL }, /* 0xA6 */ 2420 { 1, 0, NULL }, /* 0xA7 */ 2421 { 1, 0, NULL }, /* 0xA8 */ 2422 { 1, 0, NULL }, /* 0xA9 */ 2423 { 1, 0, NULL }, /* 0xAA */ 2424 { 1, 0, NULL }, /* 0xAB */ 2425 { 1, 0, NULL }, /* 0xAC */ 2426 { 1, 0, NULL }, /* 0xAD */ 2427 { 1, 0, NULL }, /* 0xAE */ 2428 { 1, 0, NULL }, /* 0xAF */ 2429 { 1, 0, NULL }, /* 0xB0 */ 2430 { 1, 0, NULL }, /* 0xB1 */ 2431 { 1, 0, NULL }, /* 0xB2 */ 2432 { 1, 0, NULL }, /* 0xB3 */ 2433 { 1, 0, NULL }, /* 0xB4 */ 2434 { 1, 0, NULL }, /* 0xB5 */ 2435 { 1, 0, NULL }, /* 0xB6 */ 2436 { 1, 0, NULL }, /* 0xB7 */ 2437 { 1, 0, NULL }, /* 0xB8 */ 2438 { 1, 0, NULL }, /* 0xB9 */ 2439 { 1, 0, NULL }, /* 0xBA */ 2440 { 1, 0, NULL }, /* 0xBB */ 2441 { 1, 0, NULL }, /* 0xBC */ 2442 { 1, 0, NULL }, /* 0xBD */ 2443 { 1, 0, NULL }, /* 0xBE */ 2444 { 1, 0, NULL }, /* 0xBF */ 2445 { 1, 0, NULL }, /* 0xC0 */ 2446 { 1, 0, NULL }, /* 0xC1 */ 2447 { 1, 0, NULL }, /* 0xC2 */ 2448 { 1, 0, NULL }, /* 0xC3 */ 2449 { 1, 0, NULL }, /* 0xC4 */ 2450 { 1, 0, NULL }, /* 0xC5 */ 2451 { 1, 0, NULL }, /* 0xC6 */ 2452 { 1, 0, NULL }, /* 0xC7 */ 2453 { 1, 0, NULL }, /* 0xC8 */ 2454 { 1, 0, NULL }, /* 0xC9 */ 2455 { 1, 0, NULL }, /* 0xCA */ 2456 { 1, 0, NULL }, /* 0xCB */ 2457 { 1, 0, NULL }, /* 0xCC */ 2458 { 1, 0, NULL }, /* 0xCD */ 2459 { 1, 0, NULL }, /* 0xCE */ 2460 { 1, 0, NULL }, /* 0xCF */ 2461 { 1, 0, NULL }, /* 0xD0 */ 2462 { 1, 0, NULL }, /* 0xD1 */ 2463 { 1, 0, NULL }, /* 0xD2 */ 2464 { 1, 0, NULL }, /* 0xD3 */ 2465 { 1, 0, NULL }, /* 0xD4 */ 2466 { 1, 0, NULL }, /* 0xD5 */ 2467 { 1, 0, NULL }, /* 0xD6 */ 2468 { 1, 0, NULL }, /* 0xD7 */ 2469 { 1, 0, NULL }, /* 0xD8 */ 2470 { 1, 0, NULL }, /* 0xD9 */ 2471 { 1, 0, NULL }, /* 0xDA */ 2472 { 1, 0, NULL }, /* 0xDB */ 2473 { 1, 0, NULL }, /* 0xDC */ 2474 { 1, 0, NULL }, /* 0xDD */ 2475 { 1, 0, NULL }, /* 0xDE */ 2476 { 1, 0, NULL }, /* 0xDF */ 2477 { 1, 0, NULL }, /* 0xE0 */ 2478 { 1, 0, NULL }, /* 0xE1 */ 2479 { 1, 0, NULL }, /* 0xE2 */ 2480 { 1, 0, NULL }, /* 0xE3 */ 2481 { 1, 0, NULL }, /* 0xE4 */ 2482 { 1, 0, NULL }, /* 0xE5 */ 2483 { 1, 0, NULL }, /* 0xE6 */ 2484 { 1, 0, NULL }, /* 0xE7 */ 2485 { 1, 0, NULL }, /* 0xE8 */ 2486 { 1, 0, NULL }, /* 0xE9 */ 2487 { 1, 0, NULL }, /* 0xEA */ 2488 { 1, 0, NULL }, /* 0xEB */ 2489 { 1, 0, NULL }, /* 0xEC */ 2490 { 1, 0, NULL }, /* 0xED */ 2491 { 1, 0, NULL }, /* 0xEE */ 2492 { 1, 0, NULL }, /* 0xEF */ 2493 { 1, 0, NULL }, /* 0xF0 */ 2494 { 1, 0, NULL }, /* 0xF1 */ 2495 { 1, 0, NULL }, /* 0xF2 */ 2496 { 1, 0, NULL }, /* 0xF3 */ 2497 { 1, 0, NULL }, /* 0xF4 */ 2498 { 1, 0, NULL }, /* 0xF5 */ 2499 { 1, 0, NULL }, /* 0xF6 */ 2500 { 1, 0, NULL }, /* 0xF7 */ 2501 { 1, 0, NULL }, /* 0xF8 */ 2502 { 1, 0, NULL }, /* 0xF9 */ 2503 { 1, 0, NULL }, /* 0xFA */ 2504 { 1, 0, NULL }, /* 0xFB */ 2505 { 1, 0, NULL }, /* 0xFC */ 2506 { 1, 0, NULL }, /* 0xFD */ 2507 { 1, 0, NULL }, /* 0xFE */ 2508 { 1, 0, NULL } /* 0xFF */ 2509}; 2510 2511/* ----------------------------------------------------------------------- */ 2512 2513static ImplEUCJPConvertData const aImplEUCJPCvtData = 2514{ 2515 aJIS0208UniLeadTab, 2516 aJIS0212UniLeadTab, 2517 aJIS0208DBCSHighTab, 2518 aJIS0212DBCSHighTab 2519}; 2520 2521/* ----------------------------------------------------------------------- */ 2522 2523static ImplTextEncodingData const aImplEUCJPTextEncodingData 2524 = { { &aImplEUCJPCvtData, 2525 ImplEUCJPToUnicode, 2526 ImplUnicodeToEUCJP, 2527 NULL, 2528 NULL, 2529 NULL, 2530 NULL, 2531 NULL, 2532 NULL }, 2533 1, 2534 3, 2535 2, 2536 128, 2537 "euc-jp", 2538 "euc-jp", 2539 RTL_TEXTENCODING_INFO_ASCII 2540 | RTL_TEXTENCODING_INFO_MULTIBYTE 2541 | RTL_TEXTENCODING_INFO_MIME }; 2542 /* SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */ 2543 2544/* ======================================================================= */ 2545 2546/* !!! JIS - X Encodings not complete !!! */ 2547 2548#define HALFWIDTHKANA_START 0xFF61 2549#define HALFWIDTHKANA_END 0xFF9F 2550 2551static sal_uChar const aImplJISX0201Tab[HALFWIDTHKANA_END - HALFWIDTHKANA_START + 1] = 2552{ 2553 0xA1, 0xA2, 0xA3, 0xA4, 0x5A, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 2554 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 2555 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 2556 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 2557}; 2558 2559/* ----------------------------------------------------------------------- */ 2560 2561static ImplByteConvertData const aImplJISX0201ByteCvtData = 2562{ 2563 NULL, 2564 NULL, 2565 0, 0, 2566 0, 0, 2567 aImplJISX0201Tab, 2568 NULL, 2569 NULL, 2570 HALFWIDTHKANA_START, HALFWIDTHKANA_END, 2571 0, 0, 2572 0 2573}; 2574 2575/* ----------------------------------------------------------------------- */ 2576 2577static ImplTextEncodingData const aImplJISX0201TextEncodingData 2578 = { { &aImplJISX0201ByteCvtData, 2579 NULL, 2580 ImplUnicodeToChar, 2581 NULL, 2582 NULL, 2583 NULL, 2584 NULL, 2585 NULL, 2586 NULL }, 2587 1, 2588 1, 2589 1, 2590 128, 2591 "euc-jp", 2592 "euc-jp", 2593 RTL_TEXTENCODING_INFO_MULTIBYTE }; 2594 /* SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */ 2595 2596/* ======================================================================= */ 2597 2598static ImplDBCSConvertData const aImplJISX0208DBCSCvtData = 2599{ 2600 NULL, 2601 aJIS0208DBCSHighTab, 2602 0x00, 0xFF, 2603 0x21, 0x7E, 2604 NULL, 2605 0 2606}; 2607 2608/* ----------------------------------------------------------------------- */ 2609 2610static ImplTextEncodingData const aImplJISX0208TextEncodingData 2611 = { { &aImplJISX0208DBCSCvtData, 2612 NULL, 2613 ImplUnicodeToDBCS, 2614 NULL, 2615 NULL, 2616 NULL, 2617 NULL, 2618 NULL, 2619 NULL }, 2620 2, 2621 2, 2622 2, 2623 128, 2624 "euc-jp", 2625 "euc-jp", 2626 RTL_TEXTENCODING_INFO_MULTIBYTE }; 2627 /* SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */ 2628 2629/* ======================================================================= */ 2630 2631static ImplDBCSConvertData const aImplJISX0212DBCSCvtData = 2632{ 2633 NULL, 2634 aJIS0212DBCSHighTab, 2635 0x00, 0xFF, 2636 0x21, 0x7E, 2637 NULL, 2638 0 2639}; 2640 2641/* ----------------------------------------------------------------------- */ 2642 2643static ImplTextEncodingData const aImplJISX0212TextEncodingData 2644 = { { &aImplJISX0212DBCSCvtData, 2645 NULL, 2646 ImplUnicodeToDBCS, 2647 NULL, 2648 NULL, 2649 NULL, 2650 NULL, 2651 NULL, 2652 NULL }, 2653 2, 2654 2, 2655 2, 2656 128, 2657 "euc-jp", 2658 "euc-jp", 2659 RTL_TEXTENCODING_INFO_MULTIBYTE }; 2660 /* SCRIPT_JAPANESE, pc code page 932, mac encoding 1 */ 2661