C++ 如何在不丢失数据的情况下将wchar_t*转换为char*?

C++ 如何在不丢失数据的情况下将wchar_t*转换为char*?,c++,unicode,char,wchar-t,C++,Unicode,Char,Wchar T,我正在使用一个日语字符串作为wchar\u t,我需要将其转换为char*。是否有任何方法或函数可以将wchar\u t*转换为char*,而不会丢失数据?首先要做的是选择字符串编码,如UTF-8或UTF-16。然后,用您通过或其他类似的字符串编码库选择的编码方式对您的wchar\u t[]字符串进行编码。仅说“我有一个字符串作为wchar\u t”是不够的。您还必须知道字符串的字符编码方式。这可能是UTF-16,但您需要明确知道 仅仅说“我想转换成字符”也是不够的。同样,您必须决定字符的编码方

我正在使用一个日语字符串作为
wchar\u t
,我需要将其转换为
char*
。是否有任何方法或函数可以将
wchar\u t*
转换为
char*
,而不会丢失数据?

首先要做的是选择字符串编码,如UTF-8或UTF-16。然后,用您通过或其他类似的字符串编码库选择的编码方式对您的
wchar\u t[]
字符串进行编码。

仅说“我有一个字符串作为
wchar\u t
是不够的。您还必须知道字符串的字符编码方式。这可能是UTF-16,但您需要明确知道

仅仅说“我想转换成
字符
”也是不够的。
同样,您必须决定字符的编码方式。JIS?轮班JIS?欧共体?UTF-8?另一种编码


如果您知道以上两个问题的答案,您可以使用进行转换,而不存在任何问题。

您需要调用
WideCharToMultiByte
并传入所需日语多字节编码的代码页编码标识符。有关该函数,请参见MDSN。在Windows上,本地多字节集是CP932,是ShiftJIS上的MS变体。但是,您可能希望UTF-8发送给需要它的人。

您使用的是什么语言?C?你好,明熙,你能再简单介绍一下你提供的答案吗