1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 /* 22 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 23 * Use is subject to license terms. 24 */ 25 /* 26 * COPYRIGHT AND PERMISSION NOTICE 27 * 28 * Copyright (c) 1991-2006 Unicode, Inc. All rights reserved. Distributed under 29 * the Terms of Use in http://www.unicode.org/copyright.html. 30 * 31 * Permission is hereby granted, free of charge, to any person obtaining 32 * a copy of the Unicode data files and any associated documentation (the 33 * "Data Files") or Unicode software and any associated documentation (the 34 * "Software") to deal in the Data Files or Software without restriction, 35 * including without limitation the rights to use, copy, modify, merge, 36 * publish, distribute, and/or sell copies of the Data Files or Software, and 37 * to permit persons to whom the Data Files or Software are furnished to do so, 38 * provided that (a) the above copyright notice(s) and this permission notice 39 * appear with all copies of the Data Files or Software, (b) both the above 40 * copyright notice(s) and this permission notice appear in associated 41 * documentation, and (c) there is clear notice in each modified Data File or 42 * in the Software as well as in the documentation associated with the Data 43 * File(s) or Software that the data or software has been modified. 44 * 45 * THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY 46 * KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 47 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF 48 * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS 49 * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR 50 * CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 51 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 52 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 53 * OF THE DATA FILES OR SOFTWARE. 54 * 55 * Except as contained in this notice, the name of a copyright holder shall not 56 * be used in advertising or otherwise to promote the sale, use or other 57 * dealings in these Data Files or Software without prior written authorization 58 * of the copyright holder. 59 * 60 * Unicode and the Unicode logo are trademarks of Unicode, Inc., and may be 61 * registered in some jurisdictions. All other trademarks and registered 62 * trademarks mentioned herein are the property of their respective owners. 63 */ 64 /* 65 * This file has been modified by Sun Microsystems, Inc. 66 */ 67 68 #ifndef _SYS_KICONV_LATIN1_H 69 #define _SYS_KICONV_LATIN1_H 70 71 #ifdef __cplusplus 72 extern "C" { 73 #endif 74 75 #include <sys/kiconv.h> 76 77 #ifdef _KERNEL 78 79 /* 80 * Mapping tables from CP1252, ISO 8859-1, ISO 8859-15, and CP850 to UTF-8. 81 * 82 * Indices are calculated by subtracting 0x80 from single byte character code 83 * values. 84 * 85 * Each component has up to three UTF-8 character bytes; the first byte will 86 * be used to figure out on how many bytes should be taken. If size figured 87 * out has a value less than zero, that means that component isn't valid and 88 * has no assigned character. 89 */ 90 static const kiconv_to_utf8_tbl_comp_t to_u8_tbl[4][128] = { 91 { /* CP1252 -> UTF-8 */ 92 { 0xE2, 0x82, 0xAC }, /* 0x80 */ 93 { 0xFE, 0xFE, 0xFE }, /* 0x81 (illegal character) */ 94 { 0xE2, 0x80, 0x9A }, /* 0x82 */ 95 { 0xC6, 0x92, 0x00 }, /* 0x83 */ 96 { 0xE2, 0x80, 0x9E }, /* 0x84 */ 97 { 0xE2, 0x80, 0xA6 }, /* 0x85 */ 98 { 0xE2, 0x80, 0xA0 }, /* 0x86 */ 99 { 0xE2, 0x80, 0xA1 }, /* 0x87 */ 100 { 0xCB, 0x86, 0x00 }, /* 0x88 */ 101 { 0xE2, 0x80, 0xB0 }, /* 0x89 */ 102 { 0xC5, 0xA0, 0x00 }, /* 0x8A */ 103 { 0xE2, 0x80, 0xB9 }, /* 0x8B */ 104 { 0xC5, 0x92, 0x00 }, /* 0x8C */ 105 { 0xFE, 0xFE, 0xFE }, /* 0x8D (illegal character) */ 106 { 0xC5, 0xBD, 0x00 }, /* 0x8E */ 107 { 0xFE, 0xFE, 0xFE }, /* 0x8F (illegal character) */ 108 { 0xFE, 0xFE, 0xFE }, /* 0x90 (illegal character) */ 109 { 0xE2, 0x80, 0x98 }, /* 0x91 */ 110 { 0xE2, 0x80, 0x99 }, /* 0x92 */ 111 { 0xE2, 0x80, 0x9C }, /* 0x93 */ 112 { 0xE2, 0x80, 0x9D }, /* 0x94 */ 113 { 0xE2, 0x80, 0xA2 }, /* 0x95 */ 114 { 0xE2, 0x80, 0x93 }, /* 0x96 */ 115 { 0xE2, 0x80, 0x94 }, /* 0x97 */ 116 { 0xCB, 0x9C, 0x00 }, /* 0x98 */ 117 { 0xE2, 0x84, 0xA2 }, /* 0x99 */ 118 { 0xC5, 0xA1, 0x00 }, /* 0x9A */ 119 { 0xE2, 0x80, 0xBA }, /* 0x9B */ 120 { 0xC5, 0x93, 0x00 }, /* 0x9C */ 121 { 0xFE, 0xFE, 0xFE }, /* 0x9D (illegal character) */ 122 { 0xC5, 0xBE, 0x00 }, /* 0x9E */ 123 { 0xC5, 0xB8, 0x00 }, /* 0x9F */ 124 { 0xC2, 0xA0, 0x00 }, /* 0xA0 */ 125 { 0xC2, 0xA1, 0x00 }, /* 0xA1 */ 126 { 0xC2, 0xA2, 0x00 }, /* 0xA2 */ 127 { 0xC2, 0xA3, 0x00 }, /* 0xA3 */ 128 { 0xC2, 0xA4, 0x00 }, /* 0xA4 */ 129 { 0xC2, 0xA5, 0x00 }, /* 0xA5 */ 130 { 0xC2, 0xA6, 0x00 }, /* 0xA6 */ 131 { 0xC2, 0xA7, 0x00 }, /* 0xA7 */ 132 { 0xC2, 0xA8, 0x00 }, /* 0xA8 */ 133 { 0xC2, 0xA9, 0x00 }, /* 0xA9 */ 134 { 0xC2, 0xAA, 0x00 }, /* 0xAA */ 135 { 0xC2, 0xAB, 0x00 }, /* 0xAB */ 136 { 0xC2, 0xAC, 0x00 }, /* 0xAC */ 137 { 0xC2, 0xAD, 0x00 }, /* 0xAD */ 138 { 0xC2, 0xAE, 0x00 }, /* 0xAE */ 139 { 0xC2, 0xAF, 0x00 }, /* 0xAF */ 140 { 0xC2, 0xB0, 0x00 }, /* 0xB0 */ 141 { 0xC2, 0xB1, 0x00 }, /* 0xB1 */ 142 { 0xC2, 0xB2, 0x00 }, /* 0xB2 */ 143 { 0xC2, 0xB3, 0x00 }, /* 0xB3 */ 144 { 0xC2, 0xB4, 0x00 }, /* 0xB4 */ 145 { 0xC2, 0xB5, 0x00 }, /* 0xB5 */ 146 { 0xC2, 0xB6, 0x00 }, /* 0xB6 */ 147 { 0xC2, 0xB7, 0x00 }, /* 0xB7 */ 148 { 0xC2, 0xB8, 0x00 }, /* 0xB8 */ 149 { 0xC2, 0xB9, 0x00 }, /* 0xB9 */ 150 { 0xC2, 0xBA, 0x00 }, /* 0xBA */ 151 { 0xC2, 0xBB, 0x00 }, /* 0xBB */ 152 { 0xC2, 0xBC, 0x00 }, /* 0xBC */ 153 { 0xC2, 0xBD, 0x00 }, /* 0xBD */ 154 { 0xC2, 0xBE, 0x00 }, /* 0xBE */ 155 { 0xC2, 0xBF, 0x00 }, /* 0xBF */ 156 { 0xC3, 0x80, 0x00 }, /* 0xC0 */ 157 { 0xC3, 0x81, 0x00 }, /* 0xC1 */ 158 { 0xC3, 0x82, 0x00 }, /* 0xC2 */ 159 { 0xC3, 0x83, 0x00 }, /* 0xC3 */ 160 { 0xC3, 0x84, 0x00 }, /* 0xC4 */ 161 { 0xC3, 0x85, 0x00 }, /* 0xC5 */ 162 { 0xC3, 0x86, 0x00 }, /* 0xC6 */ 163 { 0xC3, 0x87, 0x00 }, /* 0xC7 */ 164 { 0xC3, 0x88, 0x00 }, /* 0xC8 */ 165 { 0xC3, 0x89, 0x00 }, /* 0xC9 */ 166 { 0xC3, 0x8A, 0x00 }, /* 0xCA */ 167 { 0xC3, 0x8B, 0x00 }, /* 0xCB */ 168 { 0xC3, 0x8C, 0x00 }, /* 0xCC */ 169 { 0xC3, 0x8D, 0x00 }, /* 0xCD */ 170 { 0xC3, 0x8E, 0x00 }, /* 0xCE */ 171 { 0xC3, 0x8F, 0x00 }, /* 0xCF */ 172 { 0xC3, 0x90, 0x00 }, /* 0xD0 */ 173 { 0xC3, 0x91, 0x00 }, /* 0xD1 */ 174 { 0xC3, 0x92, 0x00 }, /* 0xD2 */ 175 { 0xC3, 0x93, 0x00 }, /* 0xD3 */ 176 { 0xC3, 0x94, 0x00 }, /* 0xD4 */ 177 { 0xC3, 0x95, 0x00 }, /* 0xD5 */ 178 { 0xC3, 0x96, 0x00 }, /* 0xD6 */ 179 { 0xC3, 0x97, 0x00 }, /* 0xD7 */ 180 { 0xC3, 0x98, 0x00 }, /* 0xD8 */ 181 { 0xC3, 0x99, 0x00 }, /* 0xD9 */ 182 { 0xC3, 0x9A, 0x00 }, /* 0xDA */ 183 { 0xC3, 0x9B, 0x00 }, /* 0xDB */ 184 { 0xC3, 0x9C, 0x00 }, /* 0xDC */ 185 { 0xC3, 0x9D, 0x00 }, /* 0xDD */ 186 { 0xC3, 0x9E, 0x00 }, /* 0xDE */ 187 { 0xC3, 0x9F, 0x00 }, /* 0xDF */ 188 { 0xC3, 0xA0, 0x00 }, /* 0xE0 */ 189 { 0xC3, 0xA1, 0x00 }, /* 0xE1 */ 190 { 0xC3, 0xA2, 0x00 }, /* 0xE2 */ 191 { 0xC3, 0xA3, 0x00 }, /* 0xE3 */ 192 { 0xC3, 0xA4, 0x00 }, /* 0xE4 */ 193 { 0xC3, 0xA5, 0x00 }, /* 0xE5 */ 194 { 0xC3, 0xA6, 0x00 }, /* 0xE6 */ 195 { 0xC3, 0xA7, 0x00 }, /* 0xE7 */ 196 { 0xC3, 0xA8, 0x00 }, /* 0xE8 */ 197 { 0xC3, 0xA9, 0x00 }, /* 0xE9 */ 198 { 0xC3, 0xAA, 0x00 }, /* 0xEA */ 199 { 0xC3, 0xAB, 0x00 }, /* 0xEB */ 200 { 0xC3, 0xAC, 0x00 }, /* 0xEC */ 201 { 0xC3, 0xAD, 0x00 }, /* 0xED */ 202 { 0xC3, 0xAE, 0x00 }, /* 0xEE */ 203 { 0xC3, 0xAF, 0x00 }, /* 0xEF */ 204 { 0xC3, 0xB0, 0x00 }, /* 0xF0 */ 205 { 0xC3, 0xB1, 0x00 }, /* 0xF1 */ 206 { 0xC3, 0xB2, 0x00 }, /* 0xF2 */ 207 { 0xC3, 0xB3, 0x00 }, /* 0xF3 */ 208 { 0xC3, 0xB4, 0x00 }, /* 0xF4 */ 209 { 0xC3, 0xB5, 0x00 }, /* 0xF5 */ 210 { 0xC3, 0xB6, 0x00 }, /* 0xF6 */ 211 { 0xC3, 0xB7, 0x00 }, /* 0xF7 */ 212 { 0xC3, 0xB8, 0x00 }, /* 0xF8 */ 213 { 0xC3, 0xB9, 0x00 }, /* 0xF9 */ 214 { 0xC3, 0xBA, 0x00 }, /* 0xFA */ 215 { 0xC3, 0xBB, 0x00 }, /* 0xFB */ 216 { 0xC3, 0xBC, 0x00 }, /* 0xFC */ 217 { 0xC3, 0xBD, 0x00 }, /* 0xFD */ 218 { 0xC3, 0xBE, 0x00 }, /* 0xFE */ 219 { 0xC3, 0xBF, 0x00 }, /* 0xFF */ 220 }, 221 { /* ISO 8859-1 -> UTF-8 */ 222 { 0xC2, 0x80, 0x00 }, /* 0x80 */ 223 { 0xC2, 0x81, 0x00 }, /* 0x81 */ 224 { 0xC2, 0x82, 0x00 }, /* 0x82 */ 225 { 0xC2, 0x83, 0x00 }, /* 0x83 */ 226 { 0xC2, 0x84, 0x00 }, /* 0x84 */ 227 { 0xC2, 0x85, 0x00 }, /* 0x85 */ 228 { 0xC2, 0x86, 0x00 }, /* 0x86 */ 229 { 0xC2, 0x87, 0x00 }, /* 0x87 */ 230 { 0xC2, 0x88, 0x00 }, /* 0x88 */ 231 { 0xC2, 0x89, 0x00 }, /* 0x89 */ 232 { 0xC2, 0x8A, 0x00 }, /* 0x8A */ 233 { 0xC2, 0x8B, 0x00 }, /* 0x8B */ 234 { 0xC2, 0x8C, 0x00 }, /* 0x8C */ 235 { 0xC2, 0x8D, 0x00 }, /* 0x8D */ 236 { 0xC2, 0x8E, 0x00 }, /* 0x8E */ 237 { 0xC2, 0x8F, 0x00 }, /* 0x8F */ 238 { 0xC2, 0x90, 0x00 }, /* 0x90 */ 239 { 0xC2, 0x91, 0x00 }, /* 0x91 */ 240 { 0xC2, 0x92, 0x00 }, /* 0x92 */ 241 { 0xC2, 0x93, 0x00 }, /* 0x93 */ 242 { 0xC2, 0x94, 0x00 }, /* 0x94 */ 243 { 0xC2, 0x95, 0x00 }, /* 0x95 */ 244 { 0xC2, 0x96, 0x00 }, /* 0x96 */ 245 { 0xC2, 0x97, 0x00 }, /* 0x97 */ 246 { 0xC2, 0x98, 0x00 }, /* 0x98 */ 247 { 0xC2, 0x99, 0x00 }, /* 0x99 */ 248 { 0xC2, 0x9A, 0x00 }, /* 0x9A */ 249 { 0xC2, 0x9B, 0x00 }, /* 0x9B */ 250 { 0xC2, 0x9C, 0x00 }, /* 0x9C */ 251 { 0xC2, 0x9D, 0x00 }, /* 0x9D */ 252 { 0xC2, 0x9E, 0x00 }, /* 0x9E */ 253 { 0xC2, 0x9F, 0x00 }, /* 0x9F */ 254 { 0xC2, 0xA0, 0x00 }, /* 0xA0 */ 255 { 0xC2, 0xA1, 0x00 }, /* 0xA1 */ 256 { 0xC2, 0xA2, 0x00 }, /* 0xA2 */ 257 { 0xC2, 0xA3, 0x00 }, /* 0xA3 */ 258 { 0xC2, 0xA4, 0x00 }, /* 0xA4 */ 259 { 0xC2, 0xA5, 0x00 }, /* 0xA5 */ 260 { 0xC2, 0xA6, 0x00 }, /* 0xA6 */ 261 { 0xC2, 0xA7, 0x00 }, /* 0xA7 */ 262 { 0xC2, 0xA8, 0x00 }, /* 0xA8 */ 263 { 0xC2, 0xA9, 0x00 }, /* 0xA9 */ 264 { 0xC2, 0xAA, 0x00 }, /* 0xAA */ 265 { 0xC2, 0xAB, 0x00 }, /* 0xAB */ 266 { 0xC2, 0xAC, 0x00 }, /* 0xAC */ 267 { 0xC2, 0xAD, 0x00 }, /* 0xAD */ 268 { 0xC2, 0xAE, 0x00 }, /* 0xAE */ 269 { 0xC2, 0xAF, 0x00 }, /* 0xAF */ 270 { 0xC2, 0xB0, 0x00 }, /* 0xB0 */ 271 { 0xC2, 0xB1, 0x00 }, /* 0xB1 */ 272 { 0xC2, 0xB2, 0x00 }, /* 0xB2 */ 273 { 0xC2, 0xB3, 0x00 }, /* 0xB3 */ 274 { 0xC2, 0xB4, 0x00 }, /* 0xB4 */ 275 { 0xC2, 0xB5, 0x00 }, /* 0xB5 */ 276 { 0xC2, 0xB6, 0x00 }, /* 0xB6 */ 277 { 0xC2, 0xB7, 0x00 }, /* 0xB7 */ 278 { 0xC2, 0xB8, 0x00 }, /* 0xB8 */ 279 { 0xC2, 0xB9, 0x00 }, /* 0xB9 */ 280 { 0xC2, 0xBA, 0x00 }, /* 0xBA */ 281 { 0xC2, 0xBB, 0x00 }, /* 0xBB */ 282 { 0xC2, 0xBC, 0x00 }, /* 0xBC */ 283 { 0xC2, 0xBD, 0x00 }, /* 0xBD */ 284 { 0xC2, 0xBE, 0x00 }, /* 0xBE */ 285 { 0xC2, 0xBF, 0x00 }, /* 0xBF */ 286 { 0xC3, 0x80, 0x00 }, /* 0xC0 */ 287 { 0xC3, 0x81, 0x00 }, /* 0xC1 */ 288 { 0xC3, 0x82, 0x00 }, /* 0xC2 */ 289 { 0xC3, 0x83, 0x00 }, /* 0xC3 */ 290 { 0xC3, 0x84, 0x00 }, /* 0xC4 */ 291 { 0xC3, 0x85, 0x00 }, /* 0xC5 */ 292 { 0xC3, 0x86, 0x00 }, /* 0xC6 */ 293 { 0xC3, 0x87, 0x00 }, /* 0xC7 */ 294 { 0xC3, 0x88, 0x00 }, /* 0xC8 */ 295 { 0xC3, 0x89, 0x00 }, /* 0xC9 */ 296 { 0xC3, 0x8A, 0x00 }, /* 0xCA */ 297 { 0xC3, 0x8B, 0x00 }, /* 0xCB */ 298 { 0xC3, 0x8C, 0x00 }, /* 0xCC */ 299 { 0xC3, 0x8D, 0x00 }, /* 0xCD */ 300 { 0xC3, 0x8E, 0x00 }, /* 0xCE */ 301 { 0xC3, 0x8F, 0x00 }, /* 0xCF */ 302 { 0xC3, 0x90, 0x00 }, /* 0xD0 */ 303 { 0xC3, 0x91, 0x00 }, /* 0xD1 */ 304 { 0xC3, 0x92, 0x00 }, /* 0xD2 */ 305 { 0xC3, 0x93, 0x00 }, /* 0xD3 */ 306 { 0xC3, 0x94, 0x00 }, /* 0xD4 */ 307 { 0xC3, 0x95, 0x00 }, /* 0xD5 */ 308 { 0xC3, 0x96, 0x00 }, /* 0xD6 */ 309 { 0xC3, 0x97, 0x00 }, /* 0xD7 */ 310 { 0xC3, 0x98, 0x00 }, /* 0xD8 */ 311 { 0xC3, 0x99, 0x00 }, /* 0xD9 */ 312 { 0xC3, 0x9A, 0x00 }, /* 0xDA */ 313 { 0xC3, 0x9B, 0x00 }, /* 0xDB */ 314 { 0xC3, 0x9C, 0x00 }, /* 0xDC */ 315 { 0xC3, 0x9D, 0x00 }, /* 0xDD */ 316 { 0xC3, 0x9E, 0x00 }, /* 0xDE */ 317 { 0xC3, 0x9F, 0x00 }, /* 0xDF */ 318 { 0xC3, 0xA0, 0x00 }, /* 0xE0 */ 319 { 0xC3, 0xA1, 0x00 }, /* 0xE1 */ 320 { 0xC3, 0xA2, 0x00 }, /* 0xE2 */ 321 { 0xC3, 0xA3, 0x00 }, /* 0xE3 */ 322 { 0xC3, 0xA4, 0x00 }, /* 0xE4 */ 323 { 0xC3, 0xA5, 0x00 }, /* 0xE5 */ 324 { 0xC3, 0xA6, 0x00 }, /* 0xE6 */ 325 { 0xC3, 0xA7, 0x00 }, /* 0xE7 */ 326 { 0xC3, 0xA8, 0x00 }, /* 0xE8 */ 327 { 0xC3, 0xA9, 0x00 }, /* 0xE9 */ 328 { 0xC3, 0xAA, 0x00 }, /* 0xEA */ 329 { 0xC3, 0xAB, 0x00 }, /* 0xEB */ 330 { 0xC3, 0xAC, 0x00 }, /* 0xEC */ 331 { 0xC3, 0xAD, 0x00 }, /* 0xED */ 332 { 0xC3, 0xAE, 0x00 }, /* 0xEE */ 333 { 0xC3, 0xAF, 0x00 }, /* 0xEF */ 334 { 0xC3, 0xB0, 0x00 }, /* 0xF0 */ 335 { 0xC3, 0xB1, 0x00 }, /* 0xF1 */ 336 { 0xC3, 0xB2, 0x00 }, /* 0xF2 */ 337 { 0xC3, 0xB3, 0x00 }, /* 0xF3 */ 338 { 0xC3, 0xB4, 0x00 }, /* 0xF4 */ 339 { 0xC3, 0xB5, 0x00 }, /* 0xF5 */ 340 { 0xC3, 0xB6, 0x00 }, /* 0xF6 */ 341 { 0xC3, 0xB7, 0x00 }, /* 0xF7 */ 342 { 0xC3, 0xB8, 0x00 }, /* 0xF8 */ 343 { 0xC3, 0xB9, 0x00 }, /* 0xF9 */ 344 { 0xC3, 0xBA, 0x00 }, /* 0xFA */ 345 { 0xC3, 0xBB, 0x00 }, /* 0xFB */ 346 { 0xC3, 0xBC, 0x00 }, /* 0xFC */ 347 { 0xC3, 0xBD, 0x00 }, /* 0xFD */ 348 { 0xC3, 0xBE, 0x00 }, /* 0xFE */ 349 { 0xC3, 0xBF, 0x00 }, /* 0xFF */ 350 }, 351 { /* ISO 8859-15 -> UTF-8 */ 352 { 0xC2, 0x80, 0x00 }, /* 0x80 */ 353 { 0xC2, 0x81, 0x00 }, /* 0x81 */ 354 { 0xC2, 0x82, 0x00 }, /* 0x82 */ 355 { 0xC2, 0x83, 0x00 }, /* 0x83 */ 356 { 0xC2, 0x84, 0x00 }, /* 0x84 */ 357 { 0xC2, 0x85, 0x00 }, /* 0x85 */ 358 { 0xC2, 0x86, 0x00 }, /* 0x86 */ 359 { 0xC2, 0x87, 0x00 }, /* 0x87 */ 360 { 0xC2, 0x88, 0x00 }, /* 0x88 */ 361 { 0xC2, 0x89, 0x00 }, /* 0x89 */ 362 { 0xC2, 0x8A, 0x00 }, /* 0x8A */ 363 { 0xC2, 0x8B, 0x00 }, /* 0x8B */ 364 { 0xC2, 0x8C, 0x00 }, /* 0x8C */ 365 { 0xC2, 0x8D, 0x00 }, /* 0x8D */ 366 { 0xC2, 0x8E, 0x00 }, /* 0x8E */ 367 { 0xC2, 0x8F, 0x00 }, /* 0x8F */ 368 { 0xC2, 0x90, 0x00 }, /* 0x90 */ 369 { 0xC2, 0x91, 0x00 }, /* 0x91 */ 370 { 0xC2, 0x92, 0x00 }, /* 0x92 */ 371 { 0xC2, 0x93, 0x00 }, /* 0x93 */ 372 { 0xC2, 0x94, 0x00 }, /* 0x94 */ 373 { 0xC2, 0x95, 0x00 }, /* 0x95 */ 374 { 0xC2, 0x96, 0x00 }, /* 0x96 */ 375 { 0xC2, 0x97, 0x00 }, /* 0x97 */ 376 { 0xC2, 0x98, 0x00 }, /* 0x98 */ 377 { 0xC2, 0x99, 0x00 }, /* 0x99 */ 378 { 0xC2, 0x9A, 0x00 }, /* 0x9A */ 379 { 0xC2, 0x9B, 0x00 }, /* 0x9B */ 380 { 0xC2, 0x9C, 0x00 }, /* 0x9C */ 381 { 0xC2, 0x9D, 0x00 }, /* 0x9D */ 382 { 0xC2, 0x9E, 0x00 }, /* 0x9E */ 383 { 0xC2, 0x9F, 0x00 }, /* 0x9F */ 384 { 0xC2, 0xA0, 0x00 }, /* 0xA0 */ 385 { 0xC2, 0xA1, 0x00 }, /* 0xA1 */ 386 { 0xC2, 0xA2, 0x00 }, /* 0xA2 */ 387 { 0xC2, 0xA3, 0x00 }, /* 0xA3 */ 388 { 0xE2, 0x82, 0xAC }, /* 0xA4 */ 389 { 0xC2, 0xA5, 0x00 }, /* 0xA5 */ 390 { 0xC5, 0xA0, 0x00 }, /* 0xA6 */ 391 { 0xC2, 0xA7, 0x00 }, /* 0xA7 */ 392 { 0xC5, 0xA1, 0x00 }, /* 0xA8 */ 393 { 0xC2, 0xA9, 0x00 }, /* 0xA9 */ 394 { 0xC2, 0xAA, 0x00 }, /* 0xAA */ 395 { 0xC2, 0xAB, 0x00 }, /* 0xAB */ 396 { 0xC2, 0xAC, 0x00 }, /* 0xAC */ 397 { 0xC2, 0xAD, 0x00 }, /* 0xAD */ 398 { 0xC2, 0xAE, 0x00 }, /* 0xAE */ 399 { 0xC2, 0xAF, 0x00 }, /* 0xAF */ 400 { 0xC2, 0xB0, 0x00 }, /* 0xB0 */ 401 { 0xC2, 0xB1, 0x00 }, /* 0xB1 */ 402 { 0xC2, 0xB2, 0x00 }, /* 0xB2 */ 403 { 0xC2, 0xB3, 0x00 }, /* 0xB3 */ 404 { 0xC5, 0xBD, 0x00 }, /* 0xB4 */ 405 { 0xC2, 0xB5, 0x00 }, /* 0xB5 */ 406 { 0xC2, 0xB6, 0x00 }, /* 0xB6 */ 407 { 0xC2, 0xB7, 0x00 }, /* 0xB7 */ 408 { 0xC5, 0xBE, 0x00 }, /* 0xB8 */ 409 { 0xC2, 0xB9, 0x00 }, /* 0xB9 */ 410 { 0xC2, 0xBA, 0x00 }, /* 0xBA */ 411 { 0xC2, 0xBB, 0x00 }, /* 0xBB */ 412 { 0xC5, 0x92, 0x00 }, /* 0xBC */ 413 { 0xC5, 0x93, 0x00 }, /* 0xBD */ 414 { 0xC5, 0xB8, 0x00 }, /* 0xBE */ 415 { 0xC2, 0xBF, 0x00 }, /* 0xBF */ 416 { 0xC3, 0x80, 0x00 }, /* 0xC0 */ 417 { 0xC3, 0x81, 0x00 }, /* 0xC1 */ 418 { 0xC3, 0x82, 0x00 }, /* 0xC2 */ 419 { 0xC3, 0x83, 0x00 }, /* 0xC3 */ 420 { 0xC3, 0x84, 0x00 }, /* 0xC4 */ 421 { 0xC3, 0x85, 0x00 }, /* 0xC5 */ 422 { 0xC3, 0x86, 0x00 }, /* 0xC6 */ 423 { 0xC3, 0x87, 0x00 }, /* 0xC7 */ 424 { 0xC3, 0x88, 0x00 }, /* 0xC8 */ 425 { 0xC3, 0x89, 0x00 }, /* 0xC9 */ 426 { 0xC3, 0x8A, 0x00 }, /* 0xCA */ 427 { 0xC3, 0x8B, 0x00 }, /* 0xCB */ 428 { 0xC3, 0x8C, 0x00 }, /* 0xCC */ 429 { 0xC3, 0x8D, 0x00 }, /* 0xCD */ 430 { 0xC3, 0x8E, 0x00 }, /* 0xCE */ 431 { 0xC3, 0x8F, 0x00 }, /* 0xCF */ 432 { 0xC3, 0x90, 0x00 }, /* 0xD0 */ 433 { 0xC3, 0x91, 0x00 }, /* 0xD1 */ 434 { 0xC3, 0x92, 0x00 }, /* 0xD2 */ 435 { 0xC3, 0x93, 0x00 }, /* 0xD3 */ 436 { 0xC3, 0x94, 0x00 }, /* 0xD4 */ 437 { 0xC3, 0x95, 0x00 }, /* 0xD5 */ 438 { 0xC3, 0x96, 0x00 }, /* 0xD6 */ 439 { 0xC3, 0x97, 0x00 }, /* 0xD7 */ 440 { 0xC3, 0x98, 0x00 }, /* 0xD8 */ 441 { 0xC3, 0x99, 0x00 }, /* 0xD9 */ 442 { 0xC3, 0x9A, 0x00 }, /* 0xDA */ 443 { 0xC3, 0x9B, 0x00 }, /* 0xDB */ 444 { 0xC3, 0x9C, 0x00 }, /* 0xDC */ 445 { 0xC3, 0x9D, 0x00 }, /* 0xDD */ 446 { 0xC3, 0x9E, 0x00 }, /* 0xDE */ 447 { 0xC3, 0x9F, 0x00 }, /* 0xDF */ 448 { 0xC3, 0xA0, 0x00 }, /* 0xE0 */ 449 { 0xC3, 0xA1, 0x00 }, /* 0xE1 */ 450 { 0xC3, 0xA2, 0x00 }, /* 0xE2 */ 451 { 0xC3, 0xA3, 0x00 }, /* 0xE3 */ 452 { 0xC3, 0xA4, 0x00 }, /* 0xE4 */ 453 { 0xC3, 0xA5, 0x00 }, /* 0xE5 */ 454 { 0xC3, 0xA6, 0x00 }, /* 0xE6 */ 455 { 0xC3, 0xA7, 0x00 }, /* 0xE7 */ 456 { 0xC3, 0xA8, 0x00 }, /* 0xE8 */ 457 { 0xC3, 0xA9, 0x00 }, /* 0xE9 */ 458 { 0xC3, 0xAA, 0x00 }, /* 0xEA */ 459 { 0xC3, 0xAB, 0x00 }, /* 0xEB */ 460 { 0xC3, 0xAC, 0x00 }, /* 0xEC */ 461 { 0xC3, 0xAD, 0x00 }, /* 0xED */ 462 { 0xC3, 0xAE, 0x00 }, /* 0xEE */ 463 { 0xC3, 0xAF, 0x00 }, /* 0xEF */ 464 { 0xC3, 0xB0, 0x00 }, /* 0xF0 */ 465 { 0xC3, 0xB1, 0x00 }, /* 0xF1 */ 466 { 0xC3, 0xB2, 0x00 }, /* 0xF2 */ 467 { 0xC3, 0xB3, 0x00 }, /* 0xF3 */ 468 { 0xC3, 0xB4, 0x00 }, /* 0xF4 */ 469 { 0xC3, 0xB5, 0x00 }, /* 0xF5 */ 470 { 0xC3, 0xB6, 0x00 }, /* 0xF6 */ 471 { 0xC3, 0xB7, 0x00 }, /* 0xF7 */ 472 { 0xC3, 0xB8, 0x00 }, /* 0xF8 */ 473 { 0xC3, 0xB9, 0x00 }, /* 0xF9 */ 474 { 0xC3, 0xBA, 0x00 }, /* 0xFA */ 475 { 0xC3, 0xBB, 0x00 }, /* 0xFB */ 476 { 0xC3, 0xBC, 0x00 }, /* 0xFC */ 477 { 0xC3, 0xBD, 0x00 }, /* 0xFD */ 478 { 0xC3, 0xBE, 0x00 }, /* 0xFE */ 479 { 0xC3, 0xBF, 0x00 }, /* 0xFF */ 480 }, 481 { /* CP850 -> UTF-8 */ 482 { 0xC3, 0x87, 0x00 }, /* 0x80 */ 483 { 0xC3, 0xBC, 0x00 }, /* 0x81 */ 484 { 0xC3, 0xA9, 0x00 }, /* 0x82 */ 485 { 0xC3, 0xA2, 0x00 }, /* 0x83 */ 486 { 0xC3, 0xA4, 0x00 }, /* 0x84 */ 487 { 0xC3, 0xA0, 0x00 }, /* 0x85 */ 488 { 0xC3, 0xA5, 0x00 }, /* 0x86 */ 489 { 0xC3, 0xA7, 0x00 }, /* 0x87 */ 490 { 0xC3, 0xAA, 0x00 }, /* 0x88 */ 491 { 0xC3, 0xAB, 0x00 }, /* 0x89 */ 492 { 0xC3, 0xA8, 0x00 }, /* 0x8A */ 493 { 0xC3, 0xAF, 0x00 }, /* 0x8B */ 494 { 0xC3, 0xAE, 0x00 }, /* 0x8C */ 495 { 0xC3, 0xAC, 0x00 }, /* 0x8D */ 496 { 0xC3, 0x84, 0x00 }, /* 0x8E */ 497 { 0xC3, 0x85, 0x00 }, /* 0x8F */ 498 { 0xC3, 0x89, 0x00 }, /* 0x90 */ 499 { 0xC3, 0xA6, 0x00 }, /* 0x91 */ 500 { 0xC3, 0x86, 0x00 }, /* 0x92 */ 501 { 0xC3, 0xB4, 0x00 }, /* 0x93 */ 502 { 0xC3, 0xB6, 0x00 }, /* 0x94 */ 503 { 0xC3, 0xB2, 0x00 }, /* 0x95 */ 504 { 0xC3, 0xBB, 0x00 }, /* 0x96 */ 505 { 0xC3, 0xB9, 0x00 }, /* 0x97 */ 506 { 0xC3, 0xBF, 0x00 }, /* 0x98 */ 507 { 0xC3, 0x96, 0x00 }, /* 0x99 */ 508 { 0xC3, 0x9C, 0x00 }, /* 0x9A */ 509 { 0xC3, 0xB8, 0x00 }, /* 0x9B */ 510 { 0xC2, 0xA3, 0x00 }, /* 0x9C */ 511 { 0xC3, 0x98, 0x00 }, /* 0x9D */ 512 { 0xC3, 0x97, 0x00 }, /* 0x9E */ 513 { 0xC6, 0x92, 0x00 }, /* 0x9F */ 514 { 0xC3, 0xA1, 0x00 }, /* 0xA0 */ 515 { 0xC3, 0xAD, 0x00 }, /* 0xA1 */ 516 { 0xC3, 0xB3, 0x00 }, /* 0xA2 */ 517 { 0xC3, 0xBA, 0x00 }, /* 0xA3 */ 518 { 0xC3, 0xB1, 0x00 }, /* 0xA4 */ 519 { 0xC3, 0x91, 0x00 }, /* 0xA5 */ 520 { 0xC2, 0xAA, 0x00 }, /* 0xA6 */ 521 { 0xC2, 0xBA, 0x00 }, /* 0xA7 */ 522 { 0xC2, 0xBF, 0x00 }, /* 0xA8 */ 523 { 0xC2, 0xAE, 0x00 }, /* 0xA9 */ 524 { 0xC2, 0xAC, 0x00 }, /* 0xAA */ 525 { 0xC2, 0xBD, 0x00 }, /* 0xAB */ 526 { 0xC2, 0xBC, 0x00 }, /* 0xAC */ 527 { 0xC2, 0xA1, 0x00 }, /* 0xAD */ 528 { 0xC2, 0xAB, 0x00 }, /* 0xAE */ 529 { 0xC2, 0xBB, 0x00 }, /* 0xAF */ 530 { 0xE2, 0x96, 0x91 }, /* 0xB0 */ 531 { 0xE2, 0x96, 0x92 }, /* 0xB1 */ 532 { 0xE2, 0x96, 0x93 }, /* 0xB2 */ 533 { 0xE2, 0x94, 0x82 }, /* 0xB3 */ 534 { 0xE2, 0x94, 0xA4 }, /* 0xB4 */ 535 { 0xC3, 0x81, 0x00 }, /* 0xB5 */ 536 { 0xC3, 0x82, 0x00 }, /* 0xB6 */ 537 { 0xC3, 0x80, 0x00 }, /* 0xB7 */ 538 { 0xC2, 0xA9, 0x00 }, /* 0xB8 */ 539 { 0xE2, 0x95, 0xA3 }, /* 0xB9 */ 540 { 0xE2, 0x95, 0x91 }, /* 0xBA */ 541 { 0xE2, 0x95, 0x97 }, /* 0xBB */ 542 { 0xE2, 0x95, 0x9D }, /* 0xBC */ 543 { 0xC2, 0xA2, 0x00 }, /* 0xBD */ 544 { 0xC2, 0xA5, 0x00 }, /* 0xBE */ 545 { 0xE2, 0x94, 0x90 }, /* 0xBF */ 546 { 0xE2, 0x94, 0x94 }, /* 0xC0 */ 547 { 0xE2, 0x94, 0xB4 }, /* 0xC1 */ 548 { 0xE2, 0x94, 0xAC }, /* 0xC2 */ 549 { 0xE2, 0x94, 0x9C }, /* 0xC3 */ 550 { 0xE2, 0x94, 0x80 }, /* 0xC4 */ 551 { 0xE2, 0x94, 0xBC }, /* 0xC5 */ 552 { 0xC3, 0xA3, 0x00 }, /* 0xC6 */ 553 { 0xC3, 0x83, 0x00 }, /* 0xC7 */ 554 { 0xE2, 0x95, 0x9A }, /* 0xC8 */ 555 { 0xE2, 0x95, 0x94 }, /* 0xC9 */ 556 { 0xE2, 0x95, 0xA9 }, /* 0xCA */ 557 { 0xE2, 0x95, 0xA6 }, /* 0xCB */ 558 { 0xE2, 0x95, 0xA0 }, /* 0xCC */ 559 { 0xE2, 0x95, 0x90 }, /* 0xCD */ 560 { 0xE2, 0x95, 0xAC }, /* 0xCE */ 561 { 0xC2, 0xA4, 0x00 }, /* 0xCF */ 562 { 0xC3, 0xB0, 0x00 }, /* 0xD0 */ 563 { 0xC3, 0x90, 0x00 }, /* 0xD1 */ 564 { 0xC3, 0x8A, 0x00 }, /* 0xD2 */ 565 { 0xC3, 0x8B, 0x00 }, /* 0xD3 */ 566 { 0xC3, 0x88, 0x00 }, /* 0xD4 */ 567 { 0xC4, 0xB1, 0x00 }, /* 0xD5 */ 568 { 0xC3, 0x8D, 0x00 }, /* 0xD6 */ 569 { 0xC3, 0x8E, 0x00 }, /* 0xD7 */ 570 { 0xC3, 0x8F, 0x00 }, /* 0xD8 */ 571 { 0xE2, 0x94, 0x98 }, /* 0xD9 */ 572 { 0xE2, 0x94, 0x8C }, /* 0xDA */ 573 { 0xE2, 0x96, 0x88 }, /* 0xDB */ 574 { 0xE2, 0x96, 0x84 }, /* 0xDC */ 575 { 0xC2, 0xA6, 0x00 }, /* 0xDD */ 576 { 0xC3, 0x8C, 0x00 }, /* 0xDE */ 577 { 0xE2, 0x96, 0x80 }, /* 0xDF */ 578 { 0xC3, 0x93, 0x00 }, /* 0xE0 */ 579 { 0xC3, 0x9F, 0x00 }, /* 0xE1 */ 580 { 0xC3, 0x94, 0x00 }, /* 0xE2 */ 581 { 0xC3, 0x92, 0x00 }, /* 0xE3 */ 582 { 0xC3, 0xB5, 0x00 }, /* 0xE4 */ 583 { 0xC3, 0x95, 0x00 }, /* 0xE5 */ 584 { 0xC2, 0xB5, 0x00 }, /* 0xE6 */ 585 { 0xC3, 0xBE, 0x00 }, /* 0xE7 */ 586 { 0xC3, 0x9E, 0x00 }, /* 0xE8 */ 587 { 0xC3, 0x9A, 0x00 }, /* 0xE9 */ 588 { 0xC3, 0x9B, 0x00 }, /* 0xEA */ 589 { 0xC3, 0x99, 0x00 }, /* 0xEB */ 590 { 0xC3, 0xBD, 0x00 }, /* 0xEC */ 591 { 0xC3, 0x9D, 0x00 }, /* 0xED */ 592 { 0xC2, 0xAF, 0x00 }, /* 0xEE */ 593 { 0xC2, 0xB4, 0x00 }, /* 0xEF */ 594 { 0xC2, 0xAD, 0x00 }, /* 0xF0 */ 595 { 0xC2, 0xB1, 0x00 }, /* 0xF1 */ 596 { 0xE2, 0x80, 0x97 }, /* 0xF2 */ 597 { 0xC2, 0xBE, 0x00 }, /* 0xF3 */ 598 { 0xC2, 0xB6, 0x00 }, /* 0xF4 */ 599 { 0xC2, 0xA7, 0x00 }, /* 0xF5 */ 600 { 0xC3, 0xB7, 0x00 }, /* 0xF6 */ 601 { 0xC2, 0xB8, 0x00 }, /* 0xF7 */ 602 { 0xC2, 0xB0, 0x00 }, /* 0xF8 */ 603 { 0xC2, 0xA8, 0x00 }, /* 0xF9 */ 604 { 0xC2, 0xB7, 0x00 }, /* 0xFA */ 605 { 0xC2, 0xB9, 0x00 }, /* 0xFB */ 606 { 0xC2, 0xB3, 0x00 }, /* 0xFC */ 607 { 0xC2, 0xB2, 0x00 }, /* 0xFD */ 608 { 0xE2, 0x96, 0xA0 }, /* 0xFE */ 609 { 0xC2, 0xA0, 0x00 }, /* 0xFF */ 610 } 611 }; 612 613 /* 614 * Mapping tables from UTF-8 to CP1252, ISO 8859-1, ISO 8859-15, and CP850. 615 * 616 * Each table is sorted with UTF-8 values to be used with binary search. 617 * UTF-8 character byte values are saved at uint32_t:24 contiguously as 618 * scalar values. 619 */ 620 static const kiconv_to_sb_tbl_comp_t to_sb_tbl[4][128] = { 621 { /* UTF-8 -> CP1252 */ 622 { 0x00C2A0, 0xA0 }, 623 { 0x00C2A1, 0xA1 }, 624 { 0x00C2A2, 0xA2 }, 625 { 0x00C2A3, 0xA3 }, 626 { 0x00C2A4, 0xA4 }, 627 { 0x00C2A5, 0xA5 }, 628 { 0x00C2A6, 0xA6 }, 629 { 0x00C2A7, 0xA7 }, 630 { 0x00C2A8, 0xA8 }, 631 { 0x00C2A9, 0xA9 }, 632 { 0x00C2AA, 0xAA }, 633 { 0x00C2AB, 0xAB }, 634 { 0x00C2AC, 0xAC }, 635 { 0x00C2AD, 0xAD }, 636 { 0x00C2AE, 0xAE }, 637 { 0x00C2AF, 0xAF }, 638 { 0x00C2B0, 0xB0 }, 639 { 0x00C2B1, 0xB1 }, 640 { 0x00C2B2, 0xB2 }, 641 { 0x00C2B3, 0xB3 }, 642 { 0x00C2B4, 0xB4 }, 643 { 0x00C2B5, 0xB5 }, 644 { 0x00C2B6, 0xB6 }, 645 { 0x00C2B7, 0xB7 }, 646 { 0x00C2B8, 0xB8 }, 647 { 0x00C2B9, 0xB9 }, 648 { 0x00C2BA, 0xBA }, 649 { 0x00C2BB, 0xBB }, 650 { 0x00C2BC, 0xBC }, 651 { 0x00C2BD, 0xBD }, 652 { 0x00C2BE, 0xBE }, 653 { 0x00C2BF, 0xBF }, 654 { 0x00C380, 0xC0 }, 655 { 0x00C381, 0xC1 }, 656 { 0x00C382, 0xC2 }, 657 { 0x00C383, 0xC3 }, 658 { 0x00C384, 0xC4 }, 659 { 0x00C385, 0xC5 }, 660 { 0x00C386, 0xC6 }, 661 { 0x00C387, 0xC7 }, 662 { 0x00C388, 0xC8 }, 663 { 0x00C389, 0xC9 }, 664 { 0x00C38A, 0xCA }, 665 { 0x00C38B, 0xCB }, 666 { 0x00C38C, 0xCC }, 667 { 0x00C38D, 0xCD }, 668 { 0x00C38E, 0xCE }, 669 { 0x00C38F, 0xCF }, 670 { 0x00C390, 0xD0 }, 671 { 0x00C391, 0xD1 }, 672 { 0x00C392, 0xD2 }, 673 { 0x00C393, 0xD3 }, 674 { 0x00C394, 0xD4 }, 675 { 0x00C395, 0xD5 }, 676 { 0x00C396, 0xD6 }, 677 { 0x00C397, 0xD7 }, 678 { 0x00C398, 0xD8 }, 679 { 0x00C399, 0xD9 }, 680 { 0x00C39A, 0xDA }, 681 { 0x00C39B, 0xDB }, 682 { 0x00C39C, 0xDC }, 683 { 0x00C39D, 0xDD }, 684 { 0x00C39E, 0xDE }, 685 { 0x00C39F, 0xDF }, 686 { 0x00C3A0, 0xE0 }, 687 { 0x00C3A1, 0xE1 }, 688 { 0x00C3A2, 0xE2 }, 689 { 0x00C3A3, 0xE3 }, 690 { 0x00C3A4, 0xE4 }, 691 { 0x00C3A5, 0xE5 }, 692 { 0x00C3A6, 0xE6 }, 693 { 0x00C3A7, 0xE7 }, 694 { 0x00C3A8, 0xE8 }, 695 { 0x00C3A9, 0xE9 }, 696 { 0x00C3AA, 0xEA }, 697 { 0x00C3AB, 0xEB }, 698 { 0x00C3AC, 0xEC }, 699 { 0x00C3AD, 0xED }, 700 { 0x00C3AE, 0xEE }, 701 { 0x00C3AF, 0xEF }, 702 { 0x00C3B0, 0xF0 }, 703 { 0x00C3B1, 0xF1 }, 704 { 0x00C3B2, 0xF2 }, 705 { 0x00C3B3, 0xF3 }, 706 { 0x00C3B4, 0xF4 }, 707 { 0x00C3B5, 0xF5 }, 708 { 0x00C3B6, 0xF6 }, 709 { 0x00C3B7, 0xF7 }, 710 { 0x00C3B8, 0xF8 }, 711 { 0x00C3B9, 0xF9 }, 712 { 0x00C3BA, 0xFA }, 713 { 0x00C3BB, 0xFB }, 714 { 0x00C3BC, 0xFC }, 715 { 0x00C3BD, 0xFD }, 716 { 0x00C3BE, 0xFE }, 717 { 0x00C3BF, 0xFF }, 718 { 0x00C592, 0x8C }, 719 { 0x00C593, 0x9C }, 720 { 0x00C5A0, 0x8A }, 721 { 0x00C5A1, 0x9A }, 722 { 0x00C5B8, 0x9F }, 723 { 0x00C5BD, 0x8E }, 724 { 0x00C5BE, 0x9E }, 725 { 0x00C692, 0x83 }, 726 { 0x00CB86, 0x88 }, 727 { 0x00CB9C, 0x98 }, 728 { 0xE28093, 0x96 }, 729 { 0xE28094, 0x97 }, 730 { 0xE28098, 0x91 }, 731 { 0xE28099, 0x92 }, 732 { 0xE2809A, 0x82 }, 733 { 0xE2809C, 0x93 }, 734 { 0xE2809D, 0x94 }, 735 { 0xE2809E, 0x84 }, 736 { 0xE280A0, 0x86 }, 737 { 0xE280A1, 0x87 }, 738 { 0xE280A2, 0x95 }, 739 { 0xE280A6, 0x85 }, 740 { 0xE280B0, 0x89 }, 741 { 0xE280B9, 0x8B }, 742 { 0xE280BA, 0x9B }, 743 { 0xE282AC, 0x80 }, 744 { 0xE284A2, 0x99 }, 745 { 0xFFFFFF, 0x00 }, 746 { 0xFFFFFF, 0x00 }, 747 { 0xFFFFFF, 0x00 }, 748 { 0xFFFFFF, 0x00 }, 749 { 0xFFFFFF, 0x00 }, 750 }, 751 { /* UTF-8 -> ISO 8859-1 */ 752 { 0x00C280, 0x80 }, 753 { 0x00C281, 0x81 }, 754 { 0x00C282, 0x82 }, 755 { 0x00C283, 0x83 }, 756 { 0x00C284, 0x84 }, 757 { 0x00C285, 0x85 }, 758 { 0x00C286, 0x86 }, 759 { 0x00C287, 0x87 }, 760 { 0x00C288, 0x88 }, 761 { 0x00C289, 0x89 }, 762 { 0x00C28A, 0x8A }, 763 { 0x00C28B, 0x8B }, 764 { 0x00C28C, 0x8C }, 765 { 0x00C28D, 0x8D }, 766 { 0x00C28E, 0x8E }, 767 { 0x00C28F, 0x8F }, 768 { 0x00C290, 0x90 }, 769 { 0x00C291, 0x91 }, 770 { 0x00C292, 0x92 }, 771 { 0x00C293, 0x93 }, 772 { 0x00C294, 0x94 }, 773 { 0x00C295, 0x95 }, 774 { 0x00C296, 0x96 }, 775 { 0x00C297, 0x97 }, 776 { 0x00C298, 0x98 }, 777 { 0x00C299, 0x99 }, 778 { 0x00C29A, 0x9A }, 779 { 0x00C29B, 0x9B }, 780 { 0x00C29C, 0x9C }, 781 { 0x00C29D, 0x9D }, 782 { 0x00C29E, 0x9E }, 783 { 0x00C29F, 0x9F }, 784 { 0x00C2A0, 0xA0 }, 785 { 0x00C2A1, 0xA1 }, 786 { 0x00C2A2, 0xA2 }, 787 { 0x00C2A3, 0xA3 }, 788 { 0x00C2A4, 0xA4 }, 789 { 0x00C2A5, 0xA5 }, 790 { 0x00C2A6, 0xA6 }, 791 { 0x00C2A7, 0xA7 }, 792 { 0x00C2A8, 0xA8 }, 793 { 0x00C2A9, 0xA9 }, 794 { 0x00C2AA, 0xAA }, 795 { 0x00C2AB, 0xAB }, 796 { 0x00C2AC, 0xAC }, 797 { 0x00C2AD, 0xAD }, 798 { 0x00C2AE, 0xAE }, 799 { 0x00C2AF, 0xAF }, 800 { 0x00C2B0, 0xB0 }, 801 { 0x00C2B1, 0xB1 }, 802 { 0x00C2B2, 0xB2 }, 803 { 0x00C2B3, 0xB3 }, 804 { 0x00C2B4, 0xB4 }, 805 { 0x00C2B5, 0xB5 }, 806 { 0x00C2B6, 0xB6 }, 807 { 0x00C2B7, 0xB7 }, 808 { 0x00C2B8, 0xB8 }, 809 { 0x00C2B9, 0xB9 }, 810 { 0x00C2BA, 0xBA }, 811 { 0x00C2BB, 0xBB }, 812 { 0x00C2BC, 0xBC }, 813 { 0x00C2BD, 0xBD }, 814 { 0x00C2BE, 0xBE }, 815 { 0x00C2BF, 0xBF }, 816 { 0x00C380, 0xC0 }, 817 { 0x00C381, 0xC1 }, 818 { 0x00C382, 0xC2 }, 819 { 0x00C383, 0xC3 }, 820 { 0x00C384, 0xC4 }, 821 { 0x00C385, 0xC5 }, 822 { 0x00C386, 0xC6 }, 823 { 0x00C387, 0xC7 }, 824 { 0x00C388, 0xC8 }, 825 { 0x00C389, 0xC9 }, 826 { 0x00C38A, 0xCA }, 827 { 0x00C38B, 0xCB }, 828 { 0x00C38C, 0xCC }, 829 { 0x00C38D, 0xCD }, 830 { 0x00C38E, 0xCE }, 831 { 0x00C38F, 0xCF }, 832 { 0x00C390, 0xD0 }, 833 { 0x00C391, 0xD1 }, 834 { 0x00C392, 0xD2 }, 835 { 0x00C393, 0xD3 }, 836 { 0x00C394, 0xD4 }, 837 { 0x00C395, 0xD5 }, 838 { 0x00C396, 0xD6 }, 839 { 0x00C397, 0xD7 }, 840 { 0x00C398, 0xD8 }, 841 { 0x00C399, 0xD9 }, 842 { 0x00C39A, 0xDA }, 843 { 0x00C39B, 0xDB }, 844 { 0x00C39C, 0xDC }, 845 { 0x00C39D, 0xDD }, 846 { 0x00C39E, 0xDE }, 847 { 0x00C39F, 0xDF }, 848 { 0x00C3A0, 0xE0 }, 849 { 0x00C3A1, 0xE1 }, 850 { 0x00C3A2, 0xE2 }, 851 { 0x00C3A3, 0xE3 }, 852 { 0x00C3A4, 0xE4 }, 853 { 0x00C3A5, 0xE5 }, 854 { 0x00C3A6, 0xE6 }, 855 { 0x00C3A7, 0xE7 }, 856 { 0x00C3A8, 0xE8 }, 857 { 0x00C3A9, 0xE9 }, 858 { 0x00C3AA, 0xEA }, 859 { 0x00C3AB, 0xEB }, 860 { 0x00C3AC, 0xEC }, 861 { 0x00C3AD, 0xED }, 862 { 0x00C3AE, 0xEE }, 863 { 0x00C3AF, 0xEF }, 864 { 0x00C3B0, 0xF0 }, 865 { 0x00C3B1, 0xF1 }, 866 { 0x00C3B2, 0xF2 }, 867 { 0x00C3B3, 0xF3 }, 868 { 0x00C3B4, 0xF4 }, 869 { 0x00C3B5, 0xF5 }, 870 { 0x00C3B6, 0xF6 }, 871 { 0x00C3B7, 0xF7 }, 872 { 0x00C3B8, 0xF8 }, 873 { 0x00C3B9, 0xF9 }, 874 { 0x00C3BA, 0xFA }, 875 { 0x00C3BB, 0xFB }, 876 { 0x00C3BC, 0xFC }, 877 { 0x00C3BD, 0xFD }, 878 { 0x00C3BE, 0xFE }, 879 { 0x00C3BF, 0xFF }, 880 }, 881 { /* UTF-8 -> ISO 8859-15 */ 882 { 0x00C280, 0x80 }, 883 { 0x00C281, 0x81 }, 884 { 0x00C282, 0x82 }, 885 { 0x00C283, 0x83 }, 886 { 0x00C284, 0x84 }, 887 { 0x00C285, 0x85 }, 888 { 0x00C286, 0x86 }, 889 { 0x00C287, 0x87 }, 890 { 0x00C288, 0x88 }, 891 { 0x00C289, 0x89 }, 892 { 0x00C28A, 0x8A }, 893 { 0x00C28B, 0x8B }, 894 { 0x00C28C, 0x8C }, 895 { 0x00C28D, 0x8D }, 896 { 0x00C28E, 0x8E }, 897 { 0x00C28F, 0x8F }, 898 { 0x00C290, 0x90 }, 899 { 0x00C291, 0x91 }, 900 { 0x00C292, 0x92 }, 901 { 0x00C293, 0x93 }, 902 { 0x00C294, 0x94 }, 903 { 0x00C295, 0x95 }, 904 { 0x00C296, 0x96 }, 905 { 0x00C297, 0x97 }, 906 { 0x00C298, 0x98 }, 907 { 0x00C299, 0x99 }, 908 { 0x00C29A, 0x9A }, 909 { 0x00C29B, 0x9B }, 910 { 0x00C29C, 0x9C }, 911 { 0x00C29D, 0x9D }, 912 { 0x00C29E, 0x9E }, 913 { 0x00C29F, 0x9F }, 914 { 0x00C2A0, 0xA0 }, 915 { 0x00C2A1, 0xA1 }, 916 { 0x00C2A2, 0xA2 }, 917 { 0x00C2A3, 0xA3 }, 918 { 0x00C2A5, 0xA5 }, 919 { 0x00C2A7, 0xA7 }, 920 { 0x00C2A9, 0xA9 }, 921 { 0x00C2AA, 0xAA }, 922 { 0x00C2AB, 0xAB }, 923 { 0x00C2AC, 0xAC }, 924 { 0x00C2AD, 0xAD }, 925 { 0x00C2AE, 0xAE }, 926 { 0x00C2AF, 0xAF }, 927 { 0x00C2B0, 0xB0 }, 928 { 0x00C2B1, 0xB1 }, 929 { 0x00C2B2, 0xB2 }, 930 { 0x00C2B3, 0xB3 }, 931 { 0x00C2B5, 0xB5 }, 932 { 0x00C2B6, 0xB6 }, 933 { 0x00C2B7, 0xB7 }, 934 { 0x00C2B9, 0xB9 }, 935 { 0x00C2BA, 0xBA }, 936 { 0x00C2BB, 0xBB }, 937 { 0x00C2BF, 0xBF }, 938 { 0x00C380, 0xC0 }, 939 { 0x00C381, 0xC1 }, 940 { 0x00C382, 0xC2 }, 941 { 0x00C383, 0xC3 }, 942 { 0x00C384, 0xC4 }, 943 { 0x00C385, 0xC5 }, 944 { 0x00C386, 0xC6 }, 945 { 0x00C387, 0xC7 }, 946 { 0x00C388, 0xC8 }, 947 { 0x00C389, 0xC9 }, 948 { 0x00C38A, 0xCA }, 949 { 0x00C38B, 0xCB }, 950 { 0x00C38C, 0xCC }, 951 { 0x00C38D, 0xCD }, 952 { 0x00C38E, 0xCE }, 953 { 0x00C38F, 0xCF }, 954 { 0x00C390, 0xD0 }, 955 { 0x00C391, 0xD1 }, 956 { 0x00C392, 0xD2 }, 957 { 0x00C393, 0xD3 }, 958 { 0x00C394, 0xD4 }, 959 { 0x00C395, 0xD5 }, 960 { 0x00C396, 0xD6 }, 961 { 0x00C397, 0xD7 }, 962 { 0x00C398, 0xD8 }, 963 { 0x00C399, 0xD9 }, 964 { 0x00C39A, 0xDA }, 965 { 0x00C39B, 0xDB }, 966 { 0x00C39C, 0xDC }, 967 { 0x00C39D, 0xDD }, 968 { 0x00C39E, 0xDE }, 969 { 0x00C39F, 0xDF }, 970 { 0x00C3A0, 0xE0 }, 971 { 0x00C3A1, 0xE1 }, 972 { 0x00C3A2, 0xE2 }, 973 { 0x00C3A3, 0xE3 }, 974 { 0x00C3A4, 0xE4 }, 975 { 0x00C3A5, 0xE5 }, 976 { 0x00C3A6, 0xE6 }, 977 { 0x00C3A7, 0xE7 }, 978 { 0x00C3A8, 0xE8 }, 979 { 0x00C3A9, 0xE9 }, 980 { 0x00C3AA, 0xEA }, 981 { 0x00C3AB, 0xEB }, 982 { 0x00C3AC, 0xEC }, 983 { 0x00C3AD, 0xED }, 984 { 0x00C3AE, 0xEE }, 985 { 0x00C3AF, 0xEF }, 986 { 0x00C3B0, 0xF0 }, 987 { 0x00C3B1, 0xF1 }, 988 { 0x00C3B2, 0xF2 }, 989 { 0x00C3B3, 0xF3 }, 990 { 0x00C3B4, 0xF4 }, 991 { 0x00C3B5, 0xF5 }, 992 { 0x00C3B6, 0xF6 }, 993 { 0x00C3B7, 0xF7 }, 994 { 0x00C3B8, 0xF8 }, 995 { 0x00C3B9, 0xF9 }, 996 { 0x00C3BA, 0xFA }, 997 { 0x00C3BB, 0xFB }, 998 { 0x00C3BC, 0xFC }, 999 { 0x00C3BD, 0xFD }, 1000 { 0x00C3BE, 0xFE }, 1001 { 0x00C3BF, 0xFF }, 1002 { 0x00C592, 0xBC }, 1003 { 0x00C593, 0xBD }, 1004 { 0x00C5A0, 0xA6 }, 1005 { 0x00C5A1, 0xA8 }, 1006 { 0x00C5B8, 0xBE }, 1007 { 0x00C5BD, 0xB4 }, 1008 { 0x00C5BE, 0xB8 }, 1009 { 0xE282AC, 0xA4 }, 1010 }, 1011 { /* UTF-8 -> CP850 */ 1012 { 0x00C2A0, 0xFF }, 1013 { 0x00C2A1, 0xAD }, 1014 { 0x00C2A2, 0xBD }, 1015 { 0x00C2A3, 0x9C }, 1016 { 0x00C2A4, 0xCF }, 1017 { 0x00C2A5, 0xBE }, 1018 { 0x00C2A6, 0xDD }, 1019 { 0x00C2A7, 0xF5 }, 1020 { 0x00C2A8, 0xF9 }, 1021 { 0x00C2A9, 0xB8 }, 1022 { 0x00C2AA, 0xA6 }, 1023 { 0x00C2AB, 0xAE }, 1024 { 0x00C2AC, 0xAA }, 1025 { 0x00C2AD, 0xF0 }, 1026 { 0x00C2AE, 0xA9 }, 1027 { 0x00C2AF, 0xEE }, 1028 { 0x00C2B0, 0xF8 }, 1029 { 0x00C2B1, 0xF1 }, 1030 { 0x00C2B2, 0xFD }, 1031 { 0x00C2B3, 0xFC }, 1032 { 0x00C2B4, 0xEF }, 1033 { 0x00C2B5, 0xE6 }, 1034 { 0x00C2B6, 0xF4 }, 1035 { 0x00C2B7, 0xFA }, 1036 { 0x00C2B8, 0xF7 }, 1037 { 0x00C2B9, 0xFB }, 1038 { 0x00C2BA, 0xA7 }, 1039 { 0x00C2BB, 0xAF }, 1040 { 0x00C2BC, 0xAC }, 1041 { 0x00C2BD, 0xAB }, 1042 { 0x00C2BE, 0xF3 }, 1043 { 0x00C2BF, 0xA8 }, 1044 { 0x00C380, 0xB7 }, 1045 { 0x00C381, 0xB5 }, 1046 { 0x00C382, 0xB6 }, 1047 { 0x00C383, 0xC7 }, 1048 { 0x00C384, 0x8E }, 1049 { 0x00C385, 0x8F }, 1050 { 0x00C386, 0x92 }, 1051 { 0x00C387, 0x80 }, 1052 { 0x00C388, 0xD4 }, 1053 { 0x00C389, 0x90 }, 1054 { 0x00C38A, 0xD2 }, 1055 { 0x00C38B, 0xD3 }, 1056 { 0x00C38C, 0xDE }, 1057 { 0x00C38D, 0xD6 }, 1058 { 0x00C38E, 0xD7 }, 1059 { 0x00C38F, 0xD8 }, 1060 { 0x00C390, 0xD1 }, 1061 { 0x00C391, 0xA5 }, 1062 { 0x00C392, 0xE3 }, 1063 { 0x00C393, 0xE0 }, 1064 { 0x00C394, 0xE2 }, 1065 { 0x00C395, 0xE5 }, 1066 { 0x00C396, 0x99 }, 1067 { 0x00C397, 0x9E }, 1068 { 0x00C398, 0x9D }, 1069 { 0x00C399, 0xEB }, 1070 { 0x00C39A, 0xE9 }, 1071 { 0x00C39B, 0xEA }, 1072 { 0x00C39C, 0x9A }, 1073 { 0x00C39D, 0xED }, 1074 { 0x00C39E, 0xE8 }, 1075 { 0x00C39F, 0xE1 }, 1076 { 0x00C3A0, 0x85 }, 1077 { 0x00C3A1, 0xA0 }, 1078 { 0x00C3A2, 0x83 }, 1079 { 0x00C3A3, 0xC6 }, 1080 { 0x00C3A4, 0x84 }, 1081 { 0x00C3A5, 0x86 }, 1082 { 0x00C3A6, 0x91 }, 1083 { 0x00C3A7, 0x87 }, 1084 { 0x00C3A8, 0x8A }, 1085 { 0x00C3A9, 0x82 }, 1086 { 0x00C3AA, 0x88 }, 1087 { 0x00C3AB, 0x89 }, 1088 { 0x00C3AC, 0x8D }, 1089 { 0x00C3AD, 0xA1 }, 1090 { 0x00C3AE, 0x8C }, 1091 { 0x00C3AF, 0x8B }, 1092 { 0x00C3B0, 0xD0 }, 1093 { 0x00C3B1, 0xA4 }, 1094 { 0x00C3B2, 0x95 }, 1095 { 0x00C3B3, 0xA2 }, 1096 { 0x00C3B4, 0x93 }, 1097 { 0x00C3B5, 0xE4 }, 1098 { 0x00C3B6, 0x94 }, 1099 { 0x00C3B7, 0xF6 }, 1100 { 0x00C3B8, 0x9B }, 1101 { 0x00C3B9, 0x97 }, 1102 { 0x00C3BA, 0xA3 }, 1103 { 0x00C3BB, 0x96 }, 1104 { 0x00C3BC, 0x81 }, 1105 { 0x00C3BD, 0xEC }, 1106 { 0x00C3BE, 0xE7 }, 1107 { 0x00C3BF, 0x98 }, 1108 { 0x00C4B1, 0xD5 }, 1109 { 0x00C692, 0x9F }, 1110 { 0xE28097, 0xF2 }, 1111 { 0xE29480, 0xC4 }, 1112 { 0xE29482, 0xB3 }, 1113 { 0xE2948C, 0xDA }, 1114 { 0xE29490, 0xBF }, 1115 { 0xE29494, 0xC0 }, 1116 { 0xE29498, 0xD9 }, 1117 { 0xE2949C, 0xC3 }, 1118 { 0xE294A4, 0xB4 }, 1119 { 0xE294AC, 0xC2 }, 1120 { 0xE294B4, 0xC1 }, 1121 { 0xE294BC, 0xC5 }, 1122 { 0xE29590, 0xCD }, 1123 { 0xE29591, 0xBA }, 1124 { 0xE29594, 0xC9 }, 1125 { 0xE29597, 0xBB }, 1126 { 0xE2959A, 0xC8 }, 1127 { 0xE2959D, 0xBC }, 1128 { 0xE295A0, 0xCC }, 1129 { 0xE295A3, 0xB9 }, 1130 { 0xE295A6, 0xCB }, 1131 { 0xE295A9, 0xCA }, 1132 { 0xE295AC, 0xCE }, 1133 { 0xE29680, 0xDF }, 1134 { 0xE29684, 0xDC }, 1135 { 0xE29688, 0xDB }, 1136 { 0xE29691, 0xB0 }, 1137 { 0xE29692, 0xB1 }, 1138 { 0xE29693, 0xB2 }, 1139 { 0xE296A0, 0xFE }, 1140 } 1141 }; 1142 1143 #endif /* _KERNEL */ 1144 1145 #ifdef __cplusplus 1146 } 1147 #endif 1148 1149 #endif /* _SYS_KICONV_LATIN1_H */ 1150