gpt4 book ai didi

c - 如何在 C++ 中将 unicode 字符数组转换回 unicode 序列

转载 作者:太空宇宙 更新时间:2023-11-04 07:40:31 25 4
gpt4 key购买 nike

我的问题是如何将 c/c++ 字符串/字符数组转换为另一个包含原始字符串的 unicode(UTF-16) 转义序列的字符串

例如,我想找到一个函数 F(char *ch) 可以完成以下功能。

char a[10] = "\u5f53";
printf("a = %s\n",a);
char b[10];
b = F(a); //<- F is the function I wanted
printf("b = %s\n",b);

-------- console will show -------
a = 張
b = \u5f53

谁有什么想法@@?~

谢谢!!

ps: 我试图猜测\u5f35 表示存储在 a 中的值,但它确实不是a[0] = -79 的值,a[1] = 105 ...所以我不知道如何将它转换回unicode序列...请给我一个hane~:)

最佳答案

这是一个使用 iconv 库的示例。

#include <stdio.h>
#include <string.h>
#include <iconv.h>

void F(char *a, char *b, size_t bufsize) {
size_t in_len = strlen(a);
size_t out_len = bufsize - 1;
iconv_t cd = iconv_open("C99", "UTF-8");
iconv(cd, &a, &in_len, &b, &out_len);
*b = 0;
}

int main(void) {
char a[10] = "\u5f53";
printf("a = %s\n",a);
char b[10];
F(a, b, 10); //<- F is the function I wanted
printf("b = %s\n",b);
return 0;
}

关于c - 如何在 C++ 中将 unicode 字符数组转换回 unicode 序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4574217/

25 4 0