2

我正在使用日语字符串作为wchar_t,我需要将其转换为char*. 是否有任何方法或功能可以wchar_t*char*不丢失数据的情况下进行转换?

4

3 回答 3

8

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

说“我想转换为”也是不够的char同样,您必须决定字符将以何种编码表示。JIS?Shift-JIS?欧盟委员会?UTF-8?另一种编码?

如果您知道上述两个问题的答案,则可以毫无问题地使用WideCharToMultiByte.

于 2011-04-11T12:08:02.953 回答
2

您首先要做的是选择字符串编码,例如 UTF-8 或 UTF-16。然后,使用您通过libiconv或其他类似字符串编码库wchar_t[]选择的编码对您的字符串进行编码。

于 2011-04-11T07:18:16.117 回答
2

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

于 2011-04-11T12:10:25.820 回答