c++ - WideCharToMultiByte() 与 wcstombs()

标签 c++ winapi unicode widechar wchar

WideCharToMultiByte() 和 wcstombs() 有什么区别 什么时候用哪个?

最佳答案

简而言之:WideCharToMultiByte 函数在参数列表中公开了用于转换的编码/代码页,而 wcstombs 没有。这是一个主要的 PITA,作为标准 does not define wchar_t 将使用什么编码,而作为开发人员,您当然需要知道要转换成/从什么编码。

除此之外,WideCharToMultiByte当然是一个Windows API函数,在其他平台上是不可用的。

因此,如果您的应用程序不是专门为可移植到非 Windows 操作系统而编写的,那么我建议您使用 WideCharToMultiByte 而无需考虑。否则,您可能想与 wcstombs 搏斗,或者(最好是恕我直言)研究使用功能齐全的可移植 Unicode 库,例如 ICU .

关于c++ - WideCharToMultiByte() 与 wcstombs(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5620831/

相关文章:

c++ - 一个简单的 boost.spirit 示例中的 error_invalid_expression 编译错误

C++ std::cin 未处理的异常:访问冲突写入位置

c++ - std::atomic 信号安全吗?

winapi - CreateProcessAsUser() 给出 "A required privilege is not held by the client"哪一个?

c++ - 可能的 ComputeCPP SYCL 错误读取嵌套缓冲区

winapi - 以编程方式重新启动 Windows 7 机器

windows - NTSD 和 WinDbg 之间到底有什么区别?

javascript - 如何在纯 JavaScript 中发送二进制数据?

python - 在 Matplotlib 中使用 Unicode 希腊字母

c++ - qDebug() 在 Windows 上不支持 unicode 字符串