将宽字符的字符字符串转换为ASCII

将宽字符的字符字符串转换为ASCII,c,C,我有一个包含以下内容的UCHAR: 61007300640066006a006c006b00610073006a00640066006c00610073006b0064006a0066006100730000000000 我想把它转换成实际的字符串,它应该是这样的 asdfasdf C是否包含一个简单的函数,每次抓取2个字节,然后转换并以空终止符结束?在wchar\u t为2字节的平台(即Windows)上,您可以使用 据我所知,这需要6100并将其转换为61?@Doritos,宽字符表示是

我有一个包含以下内容的UCHAR:

61007300640066006a006c006b00610073006a00640066006c00610073006b0064006a0066006100730000000000
我想把它转换成实际的字符串,它应该是这样的

asdfasdf

C是否包含一个简单的函数,每次抓取2个字节,然后转换并以空终止符结束?

wchar\u t
为2字节的平台(即Windows)上,您可以使用

据我所知,这需要6100并将其转换为61?@Doritos,宽字符表示是特定于平台的。它将或不将使用
(wchar_t)6100
并将其转换为
(char)61
。您正在假定
wchar\u t
char
的表示。无论如何,函数
wcstombs()
wcsrtombs()
和family用于将宽字符序列转换为窄字符表示。假设
wchar\u t
有2个字节来表示一个字符-这也是一个假设
wchat\u t
可以包含任意数量的字符,并且不便于移植。它将始终为2个字节。我正在努力使它支持Unicode。所以我猜6100下降到61。但是如果出现一个unicode字符0412,它会保留它0412吗?@Doritos表示6100,是的,因为它代表一个ASCII字符。但是对于0412,根据当前的语言环境,它可能会转换为有效的字符,或者转换为
您的目标平台是什么?