utf-8转gbk C语言
时间: 2023-07-07 20:11:13 浏览: 298
在 C 语言中,可以使用 iconv 函数将 UTF-8 编码转换为 GBK 编码,具体步骤如下:
1. 引入头文件:
```c
#include <iconv.h>
```
2. 定义转换函数:
```c
int utf8_to_gbk(char *inbuf, size_t inlen, char *outbuf, size_t outlen) {
iconv_t cd;
char **pin = &inbuf;
char **pout = &outbuf;
cd = iconv_open("GBK", "UTF-8");
if (cd == (iconv_t)-1) {
return -1;
}
memset(outbuf, 0, outlen);
if (iconv(cd, pin, &inlen, pout, &outlen) == -1) {
iconv_close(cd);
return -1;
}
iconv_close(cd);
return 0;
}
```
3. 调用转换函数:
```c
char *utf8_str = "你好,世界!";
char gbk_str[50];
if (utf8_to_gbk(utf8_str, strlen(utf8_str), gbk_str, sizeof(gbk_str)) != -1) {
printf("GBK string: %s\n", gbk_str);
}
```
注意事项:
- 转换过程中需要传入转换前的字符串、字符串长度、转换后的字符串缓存以及缓存大小。
- 转换函数返回值为 -1 表示转换失败,否则表示转换成功。
- iconv 函数在不同的系统中可能存在差异,请根据自己的系统进行调整。
阅读全文