C ++使用扩展ASCII读取文件

时间:2014-06-25 16:28:12

标签: c++ unicode

我有一个包含路径的文本文件。路径可以是任何东西,可以包含许多不同的异域字符。为了举例,我们说它包含了这个:

C:\России общий приговор\file.dat

现在我正在使用wifstream来获取这行......

wifstream myfile(path_to_txt_file);
wstring path = L"";
if (!getline(myfile, path)) cout << "Couldn't open file!" << endl;

当我想检查路径变量中的文件是否存在(我正在使用Boost,但它并不重要)时会出现问题,即使它存在,它也会返回0.

cout << boost::filesystem::exists(path) << endl; // 0
cout << boost::filesystem::exists(L"C:\\России общий приговор\\file.dat") << endl; // 1

在那里传递变量会返回0,但硬编码路径有效,发生了什么? 我是否需要设置一些区域设置?如果是这样,我如何让每个人都这样做?俄语,中文,瑞典语等。

0 个答案:

没有答案