2011-06-17 112 views
0

我必须在linux(Ubuntu)中创建一个utf8文件(比如utf8_test.txt),在c中。 我试过fopen(),但它根据Locale创建hte文件 - 因为locale是en_IN,我想它是用Ascii创建的。在c编程中在linux下创建一个utf8文件

是否有任何接口或功能,我可以指定文件的格式打开,或者我需要在文件的开头添加一些字节,以便操作系统明白它是一个UTF8文件?

请给予您宝贵的意见。

谢谢。

回答

1

GLib包含用于处理UTF-8文本的例程,并且libiconv可用于在各种字符集之间转换,包括UTF-8。

1

fopen可用于写入二进制数据流。您的语言环境不相关。

你应该检查你是否实际发送一个UTF-8字节流到文件。您可以通过在文件上运行十六进制编辑器来完成此操作,例如xxd,看看文件中是否出现UTF-8序列。

如果文件中没有UTF-8字节,则发送到文件的字节流不正确。

如果你在文件中有UTF-8字节,那么你的问题只是其中一个显示。