1 /* 2 * "streamable kanji code filter and converter" 3 * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. 4 * 5 * LICENSE NOTICES 6 * 7 * This file is part of "streamable kanji code filter and converter", 8 * which is distributed under the terms of GNU Lesser General Public 9 * License (version 2) as published by the Free Software Foundation. 10 * 11 * This software is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with "streamable kanji code filter and converter"; 18 * if not, write to the Free Software Foundation, Inc., 59 Temple Place, 19 * Suite 330, Boston, MA 02111-1307 USA 20 * 21 * The author of this file: 22 * 23 */ 24 /* 25 * The source code included in this files was separated from mbfilter.h 26 * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file 27 * mbfilter.h is included in this package . 28 * 29 */ 30 31 #ifndef MBFL_ENCODING_H 32 #define MBFL_ENCODING_H 33 34 #include "mbfl_defs.h" 35 36 enum mbfl_no_encoding { 37 mbfl_no_encoding_invalid = -1, 38 mbfl_no_encoding_pass, 39 mbfl_no_encoding_auto, 40 mbfl_no_encoding_wchar, 41 mbfl_no_encoding_byte2be, 42 mbfl_no_encoding_byte2le, 43 mbfl_no_encoding_byte4be, 44 mbfl_no_encoding_byte4le, 45 mbfl_no_encoding_base64, 46 mbfl_no_encoding_uuencode, 47 mbfl_no_encoding_html_ent, 48 mbfl_no_encoding_qprint, 49 mbfl_no_encoding_7bit, 50 mbfl_no_encoding_8bit, 51 mbfl_no_encoding_charset_min, 52 mbfl_no_encoding_ucs4, 53 mbfl_no_encoding_ucs4be, 54 mbfl_no_encoding_ucs4le, 55 mbfl_no_encoding_ucs2, 56 mbfl_no_encoding_ucs2be, 57 mbfl_no_encoding_ucs2le, 58 mbfl_no_encoding_utf32, 59 mbfl_no_encoding_utf32be, 60 mbfl_no_encoding_utf32le, 61 mbfl_no_encoding_utf16, 62 mbfl_no_encoding_utf16be, 63 mbfl_no_encoding_utf16le, 64 mbfl_no_encoding_utf8, 65 mbfl_no_encoding_utf7, 66 mbfl_no_encoding_utf7imap, 67 mbfl_no_encoding_ascii, 68 mbfl_no_encoding_euc_jp, 69 mbfl_no_encoding_sjis, 70 mbfl_no_encoding_eucjp_win, 71 mbfl_no_encoding_sjis_open, 72 mbfl_no_encoding_cp932, 73 mbfl_no_encoding_cp51932, 74 mbfl_no_encoding_jis, 75 mbfl_no_encoding_2022jp, 76 mbfl_no_encoding_2022jpms, 77 mbfl_no_encoding_cp1252, 78 mbfl_no_encoding_cp1254, 79 mbfl_no_encoding_8859_1, 80 mbfl_no_encoding_8859_2, 81 mbfl_no_encoding_8859_3, 82 mbfl_no_encoding_8859_4, 83 mbfl_no_encoding_8859_5, 84 mbfl_no_encoding_8859_6, 85 mbfl_no_encoding_8859_7, 86 mbfl_no_encoding_8859_8, 87 mbfl_no_encoding_8859_9, 88 mbfl_no_encoding_8859_10, 89 mbfl_no_encoding_8859_13, 90 mbfl_no_encoding_8859_14, 91 mbfl_no_encoding_8859_15, 92 mbfl_no_encoding_euc_cn, 93 mbfl_no_encoding_cp936, 94 mbfl_no_encoding_euc_tw, 95 mbfl_no_encoding_big5, 96 mbfl_no_encoding_euc_kr, 97 mbfl_no_encoding_2022kr, 98 mbfl_no_encoding_uhc, 99 mbfl_no_encoding_hz, 100 mbfl_no_encoding_cp1251, 101 mbfl_no_encoding_cp866, 102 mbfl_no_encoding_koi8r, 103 mbfl_no_encoding_koi8u, 104 mbfl_no_encoding_8859_16, 105 mbfl_no_encoding_armscii8, 106 mbfl_no_encoding_cp850, 107 mbfl_no_encoding_jis_ms, 108 mbfl_no_encoding_cp50220, 109 mbfl_no_encoding_cp50220raw, 110 mbfl_no_encoding_cp50221, 111 mbfl_no_encoding_cp50222, 112 mbfl_no_encoding_charset_max 113 }; 114 115 typedef enum mbfl_no_encoding mbfl_encoding_id; 116 117 /* 118 * encoding 119 */ 120 typedef struct _mbfl_encoding { 121 enum mbfl_no_encoding no_encoding; 122 const char *name; 123 const char *mime_name; 124 const char *(*aliases)[]; 125 const unsigned char *mblen_table; 126 unsigned int flag; 127 } mbfl_encoding; 128 129 MBFLAPI extern const mbfl_encoding * mbfl_name2encoding(const char *name); 130 MBFLAPI extern const mbfl_encoding * mbfl_no2encoding(enum mbfl_no_encoding no_encoding); 131 MBFLAPI extern enum mbfl_no_encoding mbfl_name2no_encoding(const char *name); 132 MBFLAPI extern const mbfl_encoding ** mbfl_get_supported_encodings(); 133 MBFLAPI extern const char * mbfl_no_encoding2name(enum mbfl_no_encoding no_encoding); 134 MBFLAPI extern const char * mbfl_no2preferred_mime_name(enum mbfl_no_encoding no_encoding); 135 MBFLAPI extern int mbfl_is_support_encoding(const char *name); 136 137 138 #endif /* MBFL_ENCODING_H */ 139