#if defined(_WINDOWS) || defined(__MINGW32__)
char *zbx_unicode_to_utf8(const wchar_t *wide_string);
char *zbx_unicode_to_utf8_static(const wchar_t *wide_string, char *utf8_string, int utf8_size);
void zbx_strlower(char *str);
void zbx_strupper(char *str);
#if defined(_WINDOWS) || defined(__MINGW32__) || defined(HAVE_ICONV)
int zbx_convert_to_utf8(char *in, size_t in_size, const char *encoding, char **out, char **error);
char *zbx_convert_to_utf8(char *in, size_t in_size, const char *encoding, char **error);
#define ZBX_MAX_BYTES_IN_UTF8_CHAR 4
size_t zbx_utf8_char_len(const char *text);
size_t zbx_strlen_utf8(const char *text);
char *zbx_strshift_utf8(char *text, size_t num);
size_t zbx_strlen_utf8_nchars(const char *text, size_t utf8_maxlen);
size_t zbx_charcount_utf8_nbytes(const char *text, size_t maxlen);
int zbx_is_utf8(const char *text);