有没有一种跨平台的方式可以从UTF-8转换为拉丁/阿拉伯语,从拉丁语/阿拉伯语转换为使用C ++的UTF-8?
答案 0 :(得分:3)
有像icu这样的库可用。但是Erik当然是对的:从Unicode到ISO 8859-6的往返将是有损的。 (是的,UTF-8是“Unicode”.UTF-16也是“Unicode”,只是针对相同的代码编号具有不同的位模式。如果您不知道,请参阅Joel Spolsky's text。或者如果你还没看过,这是很好的材料。)
答案 1 :(得分:0)
没有,但是有一种跨平台的方式来转换wchar_t
中表示的unicode(在Windows上为16位,在大多数其他平台上为32位)以及设置为系统中的语言环境字符编码使用标准C库中的wcstombs
/ mbstowcs
例程或标准C ++库中codecvt
方面的locale
方面。 wchar_t
之间的转换,其中每个元素是一个代码点,utf-8非常简单。因此,您可以在某个地方编写或复制例程,以便在wchar_t
中的utf-8和unicode之间进行转换,并将其与wcstombs
/ mbstowcs
结合使用。