如何使用不支持 unicode 字符的库



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

在他们的支持论坛上搜索了这个问题的解决方案,但我从中得到的只是"unicode?呃,为什么不直接使用ASCII?"对Unicode的态度,我想这并不少见。

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

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

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

如果您需要执行特定操作(例如在具有 unicode 路径的文件系统上使用 load 命令,例如 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.
}

最新更新