在c编程中在linux中创建一个utf8文件

时间:2011-06-17 13:02:34

标签: c linux file utf-8

我必须在linux(Ubuntu)中创建一个utf8文件(比如说utf8_test.txt)。 我尝试了fopen(),但它根据Locale创建了hte文件 - 因为语言环境是en_IN,它是在Ascii中创建的,我想。

是否有任何接口或函数可用于指定要打开的文件的格式,或者我需要在文件的开头添加一些字节,以便操作系统了解它是UTF8文件?

请提供您宝贵的意见。

谢谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

fopen 可用于编写二进制数据流。您的区域设置无关紧要。

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

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

如果文件中有UTF-8字节,那么您的问题就是显示一个。