C语言 utf8转BGK
时间: 2023-07-28 10:07:37 浏览: 165
gbk_utf8.tar.gz_GBK_GBK转UTF8 C_UTF8转GBK_gbk转utf8
在C语言中,可以使用iconv库来进行编码转换。下面是一个将UTF-8编码的字符串转换为GBK编码的示例代码:
```
#include <iconv.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *utf8str = "这是一段UTF-8编码的字符串";
size_t inlen = strlen(utf8str);
size_t outlen = inlen * 2; // 一个UTF-8字符最多会转换成两个GBK字符
char *gbkstr = (char *)malloc(outlen);
memset(gbkstr, 0, outlen);
iconv_t conv = iconv_open("GBK", "UTF-8");
if (conv == (iconv_t)-1) {
perror("iconv_open");
exit(1);
}
char *inbuf = utf8str;
char *outbuf = gbkstr;
if (iconv(conv, &inbuf, &inlen, &outbuf, &outlen) == (size_t)-1) {
perror("iconv");
exit(1);
}
iconv_close(conv);
printf("UTF-8字符串:%s\n", utf8str);
printf("转换为GBK字符串:%s\n", gbkstr);
free(gbkstr);
return 0;
}
```
需要注意的是,iconv库的使用可能会因为系统的不同而有所差异。
阅读全文