C++中文字符乱码与iconv库转化编码

使用UFT-8保存的文本、代码,打印中文直接乱码,方法可以是,把代码、文件用GBK编码格式保存,或者,在UFT-8编码的代码文件中,使用iconv库进行编码转换,将UTF-8编码转化成GBK
iconv_open函数是C语言中用于打开转换句柄的函数,其原型如下:

iconv_t iconv_open(const char *tocode, const char *fromcode);

该函数接受两个参数,分别为目标编码和源编码,返回值为一个iconv_t类型的转换句柄。使用该函数打开转换句柄后,可以使用iconv函数进行编码转换。如果打开转换句柄失败,iconv_open函数会返回一个特殊的值ICONV_INVALID_HANDLE,可以使用iconv_strerror函数获得错误信息。
在C语言中,iconv函数的原型为:

size_t iconv(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);

其中:

  • cd为iconv_t类型的转换描述符,由iconv_open函数返回;
  • inbuf为指向输入字符数组的指针;
  • inbytesleft为输入字符数组的剩余字节数;
  • outbuf为指向输出字符数组的指针;
  • outbytesleft为输出字符数组的剩余字节数。

iconv函数的作用是将输入字符集编码的字符串转换为输出字符集编码的字符串,并将转换结果存放在outbuf指向的输出字符数组中。函数返回值为转换成功的字符数。如果转换失败,则返回-1。

你可能感兴趣的:(C/C++,NotFree,c++,java,开发语言)