在Windows上,当我尝试将filepath
从QString
转换为boost::filesystem::path
时,我只面临一些特殊字符的字符串转换问题。我从典型的QDialog中获取输入QString。结果是,即使文件存在,boost::filesystem::exists( path )
也会失败。
我使用以下库函数进行转换:
要从QString转换为std::string
我正在使用:
QString::toUtf8() (Qt 4.8)
要从std::string
转换为boost::filesystem::path
我正在使用:
boost::locale::conv::utf_to_utf<wchar_t>()
这是我将文件名传递给QDialog的方式:
不好的情况:我从MS WORD文档中复制了一些特殊字符(它看起来像ßçâäëüûéàè.pdf
)并粘贴。 boost::filesystem::exists( path )
失败。boost::filesystem::exists( path )
失败。 (有没有办法在这里附上MS WORD?)
好的情况:我从Windows资源管理器中复制相同的特殊字符(具有这些特殊字符的实际现有文件中的字符)并粘贴。 {{1}}成功。