如何在不丢失数据的情况下将wchar_t*转换为char* ?
How can I convert a wchar_t* to char* without losing data?
我使用日文字符串作为wchar_t
,我需要将其转换为char*
。是否有任何方法或功能将wchar_t*
转换为char*
而不丢失数据?
这是不够的,说"我有一个字符串作为wchar_t
"。还必须知道字符串的字符所处的编码。这可能是 UTF-16,但您需要明确地知道。
这也不够说"我想转换为char
"。同样,您必须决定将以哪种编码表示字符。JIS吗?shift - jis吗?EUC吗?utf - 8 ?另一个编码?
如果您知道上面两个问题的答案,您可以使用WideCharToMultiByte
进行转换,而不会出现任何问题。
首先要做的是选择字符串编码,如UTF-8或UTF-16。然后,通过libiconv或其他类似的字符串编码库将wchar_t[]
字符串编码为您选择的编码。
您需要调用WideCharToMultiByte
并传入您想要的日语多字节编码的代码页编码标识符。该功能请参见MDSN。在Windows上,本地多字节集是CP932,它是ShiftJIS的MS变体。但是,您可能希望将UTF-8发送给需要它的人。
相关文章:
- 无法将参数 1 从 WCHAR 转换为常量字符 *
- 如何将CString转换为使用WCHAR的Windows API和自定义函数?
- VC++ 2017 如何将常量wchar_t转换为 WCHAR *.
- 将WCHAR转换为LPCTSTR
- 在C++中读取和写入Windows注册表(如何将字符串转换为wchar(?))
- 在 unicode 中将 WCHAR 数组转换为 std::string?
- 将const wchar_t*转换为wchar*
- 将字符从 fget 转换为 Wchar*
- 如何在 iOS 中将 UTF-8 字符串转换为 wchar
- 如何将const char*转换为const WCHAR*
- 如何将wchar_t(或wchar_t*或CORBA::WChar*)转换为字符串
- 如何将strncpy()转换为WCHAR
- 通过COM将C#字符串转换为C++WCHAR*
- 将wchar转换为字符串并推入矢量(C/C++)
- 将 WCHAR[260] 转换为 std::string
- 如何在C++中将WCHAR*转换为字符串,反之亦然
- "strcpy":无法将参数 2 从"WCHAR *"转换为"常量字符 *
- 在Qt中将WCHAR转换为QString
- 如何将WCHAR转换为CString
- C++:将WCHAR转换为LPCWSTR - 实际工作示例