📄 transmit.h
字号:
#include <string.h> // use for strlen()
#include "iconv.h" // use for iconv_open()/iconv()iconv_close()
size_t CodeConvert(char* out_buf,size_t buf_len,char * in_str,char * fromcode,char * tocode,bool conv_begin = false)
{
//static iconv_t its_conv;
iconv_t its_conv;
if ( (its_conv = iconv_open(tocode, fromcode)) == (iconv_t)-1 )
return (size_t)-1;
if (!in_str)
return (size_t)-1;
if (conv_begin)
iconv(its_conv, NULL, NULL, NULL, NULL);
const char * instr = in_str;
size_t inlen = strlen(in_str) + 1;
char * outstr = out_buf;
size_t outlen = buf_len - 1;
size_t ret_conv = 0;
ret_conv = iconv(its_conv, &instr, &inlen, &outstr, &outlen);
// 当outlen长度不足时, iconv()返回-1
iconv_close(its_conv);
if ( (ret_conv == (size_t)-1) || (inlen == 1) )
outstr[0] = '\0'; // 字符串末尾补充结束符'\0'
if (inlen == 1) // 此句必须在下句前
return (buf_len - 1 - outlen);
if (ret_conv == (size_t)-1)
return 0;
return (buf_len - 2 - outlen);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -