gpt4 book ai didi

c++ - 将 utf8 (char*) 转换为 wchar_t 的一个文件库?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:12:50 25 4
gpt4 key购买 nike

我正在使用 libjson这太棒了。我遇到的唯一问题是我需要将 utf8 字符串 (char*) 转换为宽字符字符串 (wchar_t*)。我用谷歌搜索并尝试了 3 个不同的库,但它们都失败了(由于缺少 header )。

我不需要任何花哨的东西。只是一种单向转换。我该怎么做?

最佳答案

如果您使用的是 Windows(考虑到您需要 wchar_t,您很可能是 Windows),请使用 MultiByteToWideChar 函数(在 windows.h 中声明),如下所示:

int length = MultiByteToWideChar(CP_UTF8, 0, src, src_length, 0, 0);
wchar_t *output_buffer = new wchar_t [length];
MultiByteToWideChar(CP_UTF8, 0, src, src_length, output_buffer, length);

或者,如果您要查找的只是 UTF8 的文字多字节表示(这不太可能,但可能),请使用以下 (stdlib.h):

wchar_t * output_buffer = new wchar_t [1024];
int length = mbstowcs(output_buffer, src, 1024);
if(length > 1024){
delete[] output_buffer;
output_buffer = new wchar_t[length+1];
mbstowcs(output_buffer, src, length);
}

希望这对您有所帮助。

关于c++ - 将 utf8 (char*) 转换为 wchar_t 的一个文件库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5603559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com