charset.h
上传用户:gzpyjq
上传日期:2013-01-31
资源大小:1852k
文件大小:3k
源码类别:

手机WAP编程

开发平台:

WINDOWS

  1. /*
  2.  * gwlib/charset.h - character set conversions
  3.  *
  4.  * This header defines some utility functions for converting between
  5.  * character sets.  Approximations are made when necessary, so avoid
  6.  * needless conversions.
  7.  * 
  8.  * Currently only GSM and Latin-1 are supported with Kannel specific 
  9.  * functions. This module contains also wrappers for libxml2 character 
  10.  * set conversion functions that work either from or to UTF-8. More 
  11.  * about libxml2's character set support on the header file 
  12.  * <libxml/encoding.h> or the implementation file encoding.c. Short 
  13.  * version: it has a few basic character set supports built in; for 
  14.  * the rest iconv is used.
  15.  *
  16.  * Richard Braakman
  17.  * Tuomas Luttinen
  18.  */
  19. #ifndef CHARSET_H
  20. #define CHARSET_H
  21. #include <libxml/encoding.h>
  22. #include <libxml/tree.h>
  23. /*
  24.  * Initialize the charset subsystem.
  25.  */
  26. void charset_init(void);
  27. /*
  28.  * Shutdown the charset subsystem.
  29.  */
  30. void charset_shutdown(void);
  31. /* Convert a string in the GSM default character set (GSM 03.38)
  32.  * to ISO-8859-1.  A series of Greek characters (codes 16, 18-26)
  33.  * are not representable and are converted to '?' characters.
  34.  * GSM default is a 7-bit alphabet.  Characters with the 8th bit
  35.  * set are left unchanged. */
  36. void charset_gsm_to_latin1(Octstr *gsm);
  37. /* Convert a string in the ISO-8859-1 character set to the GSM 
  38.  * default character set (GSM 03.38).  A large number of characters
  39.  * are not representable.  Approximations are made in some cases
  40.  * (accented characters to their unaccented versions, for example),
  41.  * and the rest are converted to '?' characters. */
  42. void charset_latin1_to_gsm(Octstr *latin1);
  43. /* Trunctate a string of GSM characters to a maximum length.
  44.  * Make sure the last remaining character is a whole character,
  45.  * and not half of an escape sequence.
  46.  * Return 1 if any characters were removed, otherwise 0. 
  47.  */
  48. int charset_gsm_truncate(Octstr *gsm, long max);
  49. /* Convert a string from  character set specified by charset_from into 
  50.  * UTF-8 character set. The result is stored in the octet string *to that 
  51.  * is allocated by the function. The function returns the number of bytes 
  52.  * written for success, -1 for general error, -2 for an transcoding error 
  53.  * (the input string wasn't valid string in the character set it was said 
  54.  * to be or there was no converter found for the character set).
  55.  */
  56. int charset_to_utf8(Octstr *from, Octstr **to, Octstr *charset_from);
  57. /* Convert a string from UTF-8 character set into another character set 
  58.  * specified by charset_from. The result is stored in the octet string *to 
  59.  * that is allocated by the function. The function returns the number of 
  60.  * bytes written for success, -1 for general error, -2 for an transcoding 
  61.  * error (the input string wasn't valid string in the character set it 
  62.  * was said to be or there was no converter found for the character set).
  63.  */
  64. int charset_from_utf8(Octstr *utf8, Octstr **to, Octstr *charset_to);
  65. #endif