gpt4 book ai didi

c++ - 将 unsigned char(BYTE) 数组转换为 const t_wchar* (LPCWSTR)

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

好吧,我有一个 BYTE 数组,我需要最终将其转换为 LPCWSTR 或 const WCHAR* 以在内置函数中使用。我已经能够用 printf 打印出 BYTE 数组,但现在我需要将它转换成一个字符串,我遇到了问题......主要是我不知道如何将这样的东西转换成非数组类型。

BYTE ba[0x10];
for(int i = 0; i < 0x10; i++)
{
printf("%02X", ba[i]); // Outputs: F1BD2CC7F2361159578EE22305827ECF
}

所以我基本上需要同样的东西,但不是打印数组,而是需要将其转换为 LPCWSTR 或 WCHAR 甚至字符串。我遇到的主要问题是将数组转换为非数组形式。

最佳答案

LPCWSTR 表示一个 UTF-16 编码的字符串。您显示的数组内容超出了 7 位 ASCII 范围,因此除非 BYTE 数组已经用 UTF-16 编码(您显示的数组不是,但如果是,您可以只使用简单的类型转换),您将需要转换为 UTF-16。在进行转换之前,您需要知道数组的特定编码,例如使用 Win32 API MultiByteToWideChar() 函数,或 iconv 或 ICU 等第三方库,或内置语言环境C++11 中的转换器等。那么数组的实际编码是什么,数组数据来自哪里?例如,它不是 UTF-8,所以它必须是其他东西。

关于c++ - 将 unsigned char(BYTE) 数组转换为 const t_wchar* (LPCWSTR),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23586189/

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