我目前在 Windows 7 64 位上使用 hdf5 1.8.15。我的软件的源代码使用 utf8 编码保存在文件中。
一旦我调用任何支持 std::string 的 hdf5 函数,输出就会变得神秘
但如果我使用const char*
而不是std::string
,一切正常。这也适用于文件名。
这是一个简短的示例:
std::string filename_ = "test.h5";
H5::H5File file( filename_.c_str(), H5F_ACC_TRUNC); // works
H5::H5File file( filename_, H5F_ACC_TRUNC); // filename is not readable or
// hdf5 throws an exception
我猜这个问题是由我的源文件和 hdf5 中使用的不同编码引起的。但我不确定这一点,也没有找到允许使用std::string
s 的解决方案。我将不胜感激任何可以帮助我解决这个问题的想法。