1

就我而言,我最近选择了irrKlang库,它允许我处理音频文件而无需做太多工作。然后我遇到了库不支持文件路径中的 unicode 字符的问题。它要么读取不正确(我会认为即使读取错误,它仍然可以找到文件),或者只是忽略它,给我留下无效的文件路径。

在他们的支持论坛中搜索解决方案,但我得到的只是“unicode?呃为什么不只使用 ascii?” 对 unicode 的态度,我想这并不少见。

我可以使用哪些技术可靠地将 unicode 字符串传递给不支持 unicode 的库?

4

1 回答 1

0

简单地说你不这样做,你可以使用字节数组传递它们,然后在另一端将其解释为 unicode 数组,但如果它不做 unicode,它就不会做 unicode。

将 unicode 字符串传递给无法解释它的库是没有意义的。

如果您需要做一些特定的事情(例如在具有 unicode 路径的文件系统上使用加载命令,例如 HFS+),那么不要这样做。而是使用系统提供的文件 API 并将数据推送到不合作的库构造函数中。

如果你对这个 unicode 文件路径业务有严重的问题,因为你不能很好地传递地址和比特流,那么一个简单的解决方案是制作你自己的函数:

obj_ptr* loadObjFromUnicodePath(path)
{
//create tmp ASCII named symlink to file at arg(path).
//call load API of irrKlang on symlink.
//delete tmp symlink, return object.
}
于 2012-08-09T06:53:10.953 回答