问题:使用ifstream 或者ofstream 打开包含中文的路径失败。
解决方案:
方法1 :
方法2 :
方法3 :
用locale 对象的name 方法可以看到,通过locale("") 构造出的locale 对象的name 为"Chinese_People's Republic of China.936" ,而原始的locale 对象的name 为"C" ,也就是缺省的ANSI _C 公约。
注意:如果使用locale loc = locale::global(locale("")) 设置全局locale 后没有用 locale::global(loc) 恢复的话,那么在程序后面的cout 语句就不能输出中文了,虽然这时候操作中文文件没有问题,但是这也是很容易让 人掉入陷阱的地方,应该值得注意。