unrar-android
unrar-android copied to clipboard
hello,请问utf8ToUtf16这个函数怎么写啊?我这边用鸿蒙的napi取得是utf-8,能帮个忙吗?
hello,请问utf8ToUtf16这个函数怎么写啊?我这边用鸿蒙的napi取得是utf-8,能帮个忙吗?
应该可以不用转, 直接把文件路径赋值给ArcName而不是ArcNameW. 这里自己处理编码是因为jni函数的utf8是modified-utf-8跟标准的utf8不同,所以直接把string的utf16转成utf32,给了ArcNameW
请问下我调用RAROpenArchive接口返回15,是指我穿的文件路径有问题吗?我是直接https://www.cnblogs.com/smallcroco-blog/p/4744280.html 看着这文章写的
请问下我调用RAROpenArchive接口返回15,是指我穿的文件路径有问题吗?我是直接https://www.cnblogs.com/smallcroco-blog/p/4744280.html 看着这文章写的
dll.hpp里面有错误定义, 直接用只包含英文名称的路径去测试, 排除可能的编码问题.
你好,请问一下。调用RARReadHeaderEx()方法读取文件名FileName.如果rar包里面的文件名是英文的,则可以正常读取到并解压成功。 但是如果文件名为中文,则读取FileName为空,并解压失败。打印log显示:hd->FileName“”,请问可以用什么方法解决一下?
请问是底层C++库编码的问题吗
具体不清楚,项目里路径用ArcNameW, 看代码时发现库本身支持两种路径, 另一种我没测试. 你试试utf8转为utf32,路径给ArcNameW, 这个用着正常的, https://android.googlesource.com/platform/external/id3lib/+/master/unicode.org/ConvertUTF.c 这个里面有utf互相转换的实现,你可以参考下
ArcNameW开始我以为是utf16, 后面使用时发现并不是用utf16而是unicode的码点, 所以就把utf16转为utf32.
嗯,也用ArcNameW进行测试了,还是只能读取英文的文件名,而中文的文件名读取不了。
可能你编码有问题,ArcNameW给utf32是没问题的
嗯,我是直接把char 转成wchar_t mbstowcs(dest, src, cSize); 然后用ArcNameW进行测试了,但是这个char 是utf8的。
这个没用过,具体应该和平台有关,调试下,看转换后是否正确。
感谢,已经解决中文的文件名读取不了的问题了。修改一下unicode.cpp里面的UtfToWide方法,就可以了