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