什么是Linux中的等效MultiByteToWideChar和WideCharToMultiByte?

19

我正在使用一个封装了std :: wstring的类,这段代码需要跨平台运行,是否有Linux上等效于Windows函数MultiByteToWideChar和WideCharToMultiByte的函数?

谢谢。


请记住,在GNU/Linux上,std::wstring的大小是Windows上std::wstring大小的两倍。 - rubenvb
4
有C99函数mbtowc和wctomb可用于此。 - Johannes Schaub - litb
@Johannes Schaub:mbtowcwctomb实际上是在1995年的规范修订1中添加的。 - caf
2个回答

19

Linux的等效函数是iconv函数,包括iconv_open, iconviconv_close(请参阅文档使用man 3 iconv_open等命令)。对于跨平台应用程序,请使用专用库,例如ICU。这些库已经包含了它们自己的字符串类;因此不需要使用std::wstring进行封装。


6

mbtowcwctomb是最直接的等效函数,但请注意它们操作与当前LC_CTYPE区域设置相对应的多字节字符集(可以使用setlocale()更改)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接