2011-11-29 62 views
4

我有一个包含UTF-16字符的文件。我在文件中读取,可以将字符存储在uint16_t数组或字符数组中(任何更好的选择?)如何在C中打印UTF-16字符?

但是,如何打印这些字符?

+1

你不能这么做。你需要描述你的实现:操作系统和编译器。 –

+0

在Linux中的gcc。 (需要更多细节?例如内核版本?) –

+0

这听起来足够具体。虽然我不知道答案! –

回答

4

我假设你想打印到stdoutstderr。一种方法是使用libiconv将UTF-16转换为UTF-32(也称为UCS-4)转换为宽字符字符串(wchar_t)。然后您可以使用wprintf和朋友打印到标准流。

+0

我试图按照建议做,但似乎打印问题。我在这里发布了一个单独的问题:http://stackoverflow.com/questions/8465939/how-to-convert-utf-16-to-utf-32-and-print-the-resulting-wchar-t-in-c –