我使用日语字符串作为wchar_t
,我需要将其转换为char*
。是否有任何方法或功能可以将wchar_t*
转换为char*
而不会丢失数据?
答案 0 :(得分:7)
仅仅说“我的字符串为wchar_t
”是不够的。您还必须知道字符串字符所在的编码。这可能是 UTF-16,但你必须明确知道。
仅仅说“我想转换为char
”还不够。同样,您必须决定字符的编码方式.JIS?按住Shift-JIS? EUC? UTF-8?另一种编码?
如果您知道上述两个问题的答案,则可以使用WideCharToMultiByte
毫无问题地进行转换。
答案 1 :(得分:2)
首先要做的是选择字符串编码,例如UTF-8或UTF-16。然后,使用libiconv或其他类似的字符串编码库对您选择的编码中的wchar_t[]
字符串进行编码。
答案 2 :(得分:2)
您需要调用WideCharToMultiByte
并传入所需日语多字节编码的代码页编码标识符。有关该功能,请参阅MDSN。在Windows上,本地多字节集是CP932,即ShiftJIS上的MS变体。但是,您可能会想要将UTF-8发送给想要它的人。