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 */