【发布时间】:2012-09-30 01:27:19
【问题描述】:
我正在开发使用 MultiByteToWideChar() 和 WideCharToMultiByte() 函数将 UTF-8 转换为 UTF-16 的应用程序,反之亦然。我的工作目的是将该应用程序从 Windows 移植到 Linux。由于这些函数在整个代码中被广泛使用,我想尽量减少之后的代码更改。 不幸的是,我有一个限制 - 不能使用像 Wine 这样的开源库,所以我基本上是在寻找一种很好的算法,用于将多字节 UTF-8 字符串转换为 UTF-16 宽字符串(反之亦然),该算法适用于 32\ 64 位 Linux,仅使用标准 Linux C 库。
有人可以推荐我可以使用的适当算法或标准实现吗?
【问题讨论】:
-
你应该看看标准 C 库中的 wchar.h,有一堆函数可以在多字节/宽 C 字符串之间进行转换。
-
但它们本身不执行 UTF 转换。我必须至少找到一些通用的转换算法。
标签: utf-8 utf-16 multibyte widechar