#ifndef __UTF8_HH__ #define __UTF8_HH__ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include "d_size.h" /** * Unicode replacement character U+FFFD. * "used to replace an incoming character whose value is unknown or otherwise * unrepresentable in Unicode" */ static const char utf8_replacement_char[] = "\xEF\xBF\xBD"; /** Unicode zero width space U+200B */ static const char utf8_zero_width_space[] = "\xE2\x80\x8B"; uint_t a_Utf8_end_of_char(const char *str, uint_t i); uint_t a_Utf8_decode(const char*, const char* end, int* len); int a_Utf8_encode(unsigned int ucs, char *buf); int a_Utf8_test(const char* src, unsigned int srclen); bool_t a_Utf8_ideographic(const char *s, const char *end, int *len); bool_t a_Utf8_combining_char(int unicode); int a_Utf8_char_count(const char *str, int len); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __UTF8_HH__ */