4

是否有一种跨平台的方法可以在 C++ 中从 UTF-8 转换为拉丁语/阿拉伯语以及从拉丁语/阿拉伯语转换为 UTF-8?

4

2 回答 2

3

有像icu这样的库可用。但 Erik 当然是对的:从 Unicode 到 ISO 8859-6 的往返将是有损的。(是的,UTF-8 是“Unicode”。UTF-16 也是“Unicode”,只是对相同的代码号有不同的位模式。如果你不知道,请参阅Joel Spolsky 的文本。或者如果你没有还没看,很好的资料。)

于 2011-05-10T12:37:25.127 回答
0

没有,但是有一种跨平台的方式可以在表示的 unicode wchar_t(在 Windows 上为 16 位,在大多数其他平台上为 32 位)和在系统中使用wcstombs/设置为区域设置字符编码的任何内容之间进行转换标准 C 库中的mbstowcs例程或标准 C++ 库中codecvt的方面locale。之间的转换wchar_t,其中每个元素是一个代码点和 utf-8 是非常简单的。因此,您可以从某处编写或复制一个例程以在 utf-8 和 unicode 之间转换wchar_t并将其与wcstombs/结合使用mbstowcs

于 2011-05-10T12:57:07.233 回答