我正在开发使用 MultiByteToWideChar() 和 WideCharToMultiByte() 函数将 UTF-8 转换为 UTF-16 的应用程序,反之亦然。我的工作目的是将该应用程序从 Windows 移植到 Linux。由于这些函数在整个代码中被广泛使用,我想尽量减少之后的代码更改。不幸的是我有一个限制 - 不能使用像 Wine 这样的开源库,所以我基本上是在寻找一个很好的算法,用于将多字节 UTF-8 字符串转换为 UTF-16 宽字符串(反之亦然),该算法适用于 32\ 64 位 Linux 并且仅使用标准 Linux C 库。
有人可以推荐我可以使用的适当算法或标准实现。