在centos下 linux c++ 程序,同一个fileName(std::string类型),可以用fopen(fileName.c_str(), "r");读取中文文件
但是fopen(fileName.c_str(), "w");创建的中文文件文件名称却是乱码 为什么?怎么用fopen创建中文文件?
我试了下,在centos里面,读取,创建,都对文件名字没问题
你先确定下,你的fileName的中文名是哪里赋值的,字符集是什么,你的显示的字符集又是什么,最好是都统一用utf8
在本地测试了,没有你说的那种问题,如果你那边有这样的情况,说明和你传入的文件名的编码有关,如果你文件名是通过外部传递进来的,则应该和你传进来的时候的字符的编码有关,如通过读取本地目录中的文件名传入,则和原文件名产生的程序所使用的编码有关,如是通过界面传入的话,则和你的shell字符编码有关,如果是直接在编程的编辑器上写的文件名,则和你的编辑器的编码格式有关,你需要检查一下。