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