在 Linux 上将 wstring 转换为 jstring
我在unix中将wstring转换为jstring时遇到问题,因为linux上wchar_t的大小为4字节(而不是像Windows那样的2字节,因此我无法使用wchar_t到jchar的转换)。
有人可以帮我吗?
谢谢, 礼萨
I'm having problems converting a wstring to jstring in unix, as the size of wchar_t on linux in 4 bytes (not 2 bytes like windows and thus I cannot use the casting of a wchar_t to a jchar).
Can anyone please help me with that?
Thanks,
Reza
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您必须使用像
iconv()
这样的东西,因为 C++ 宽字符串具有不透明(读取:未知)编码,而 Java 需要 UTF16。试试这个:如果您没有
char16_t
和std::u16string
,您可以使用uint16_t
作为基本字符类型,并使用std::basic_string
或std::vector
作为结果容器。You have to use something like
iconv()
, because C++ wide strings have an opaque (read: unknown) encoding, while Java expects UTF16. Try this:If you don't have
char16_t
andstd::u16string
, you can useuint16_t
as the basic character type andstd::basic_string<uint16_t>
orstd::vector<uint16_t>
as the resulting container.