1 /* 2 * Copyright 2007, Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5 #ifndef _UTF8_H 6 #define _UTF8_H 7 8 9 #include <BeBuild.h> 10 #include <InterfaceDefs.h> 11 #include <SupportDefs.h> 12 13 14 // Conversion Flavors 15 enum { 16 B_ISO1_CONVERSION, // ISO 8859-x 17 B_ISO2_CONVERSION, 18 B_ISO3_CONVERSION, 19 B_ISO4_CONVERSION, 20 B_ISO5_CONVERSION, 21 B_ISO6_CONVERSION, 22 B_ISO7_CONVERSION, 23 B_ISO8_CONVERSION, 24 B_ISO9_CONVERSION, 25 B_ISO10_CONVERSION, 26 B_MAC_ROMAN_CONVERSION, // Macintosh Roman 27 B_SJIS_CONVERSION, // Shift-JIS 28 B_EUC_CONVERSION, // EUC Packed Japanese 29 B_JIS_CONVERSION, // JIS X 0208-1990 30 B_MS_WINDOWS_CONVERSION, // Windows Latin-1 Codepage 1252 31 B_UNICODE_CONVERSION, // Unicode 2.0, UCS-2 32 B_KOI8R_CONVERSION, // KOI8-R 33 B_MS_WINDOWS_1251_CONVERSION, // Windows Cyrillic Codepage 1251 34 B_MS_DOS_866_CONVERSION, // MS-DOS Codepage 866 35 B_MS_DOS_CONVERSION, // MS-DOS Codepage 437 36 B_EUC_KR_CONVERSION, // EUC Korean 37 B_ISO13_CONVERSION, 38 B_ISO14_CONVERSION, 39 B_ISO15_CONVERSION, 40 B_BIG5_CONVERSION, // Chinese Big5 41 B_GBK_CONVERSION, // Chinese GB18030 42 B_UTF16_CONVERSION // Unicode UTF-16 43 }; 44 45 46 // Conversion Functions 47 48 #ifdef __cplusplus 49 50 status_t convert_to_utf8(uint32 sourceEncoding, const char* source, 51 int32* sourceLength, char* dest, int32* destLength, int32* state, 52 char substitute = B_SUBSTITUTE); 53 54 status_t convert_from_utf8(uint32 destEncoding, const char* source, 55 int32* sourceLength, char* dest, int32* destLength, int32* state, 56 char substitute = B_SUBSTITUTE); 57 58 #endif 59 60 #endif /* _UTF8_H */ 61