说实话,这个问题很早就遇到,但是一直没有搜集比较完备的解决方法。这次把问题和解决方法都记录下来,以备来日查阅。
问题1:中文路径问题导致文件打开失败。
通常是因为在调用fstream的open方法时,系统内部调用mbstowcs_s进行文件名转换,而mbstowcs_s依赖于程序的本地化设置(locale系列函数设置)。
程序启动时默认设置为LC_ALL="C"。而要正确打开中文文件名的文件,需要设置为LC_ALL="chinese"。
说实话,这个问题很早就遇到,但是一直没有搜集比较完备的解决方法。这次把问题和解决方法都记录下来,以备来日查阅。
问题1:中文路径问题导致文件打开失败。
通常是因为在调用fstream的open方法时,系统内部调用mbstowcs_s进行文件名转换,而mbstowcs_s依赖于程序的本地化设置(locale系列函数设置)。
程序启动时默认设置为LC_ALL="C"。而要正确打开中文文件名的文件,需要设置为LC_ALL="chinese"。