用c语言UTF-16编码转字符
时间: 2023-02-05 18:53:16 浏览: 50
在 C 语言中,如果要将 UTF-16 编码的字符串转换为字符,可以使用函数 `wcstombs`。该函数的原型如下:
```
size_t wcstombs(char *dest, const wchar_t *src, size_t n);
```
它将 UTF-16 编码的字符串 `src` 转换为多字节字符串,并将结果存储在 `dest` 中。参数 `n` 指定了 `dest` 的最大长度。函数返回转换后的字符串的长度,如果遇到错误则返回一个负数。
举个例子,如果要将一个 UTF-16 编码的字符串转换为字符串,可以这样写:
```
#include <stdio.h>
#include <wchar.h>
#include <stdlib.h>
int main()
{
wchar_t src[] = L"你好,世界!";
char *dest = malloc(sizeof(src));
size_t length = wcstombs(dest, src, sizeof(src));
if (length == (size_t)-1) {
perror("Error");
return 1;
}
printf("Result: %s\n", dest);
free(dest);
return 0;
}
```
运行后,输出结果为:
```
Result: 你好,世界!
```
注意,在使用 `wcstombs` 函数之前,需要先包含头文件 `wchar.h`。
希望这能帮到你!