就我而言,我最近选择了irrKlang库,它允许我处理音频文件而不需要做太多工作。然后我遇到了库不支持文件路径中的unicode字符的问题。它要么读得不正确(我会想,即使读错了,它仍然可以找到文件),或者只是忽略它,留下无效的文件路径。
搜索了他们的支持论坛以获得解决方案,但我得到的只是“unicode?呃为什么不使用ascii?”对unicode的态度,我想这并不罕见。
我可以使用哪些技术将unicode字符串可靠地传递给没有unicode支持的库?
答案 0 :(得分: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.
}