我正在使用一个封装了std :: wstring的类,这段代码需要跨平台运行,是否有Linux上等效于Windows函数MultiByteToWideChar和WideCharToMultiByte的函数?
谢谢。
Linux的等效函数是iconv
函数,包括iconv_open
, iconv
和 iconv_close
(请参阅文档使用man 3 iconv_open
等命令)。对于跨平台应用程序,请使用专用库,例如ICU。这些库已经包含了它们自己的字符串类;因此不需要使用std::wstring
进行封装。
mbtowc
和wctomb
是最直接的等效函数,但请注意它们操作与当前LC_CTYPE
区域设置相对应的多字节字符集(可以使用setlocale()
更改)。
mbtowc
和wctomb
实际上是在1995年的规范修订1中添加的。 - caf