HarmonyOS 鸿蒙Next rawfile当中中文路径会读取失败的问题,是必须为英文路径吗?

发布于 1周前 作者 gougou168 来自 鸿蒙OS

HarmonyOS 鸿蒙Next rawfile当中中文路径会读取失败的问题,是必须为英文路径吗?

web组件中index.html申请含中文路径的rawfile资源请求失败,是不支持中文路径的资源读取还是有其他解决办法?
 

3 回复

可以在onInterceptRequest方法中对svg路径解码来解决。见以下代码:
 

.onInterceptRequest((event) => {
if (!event) {
 return;
}
// 此处匹配自己想要加载的本地离线资源,进行资源拦截替换,绕过跨域
if (event.request.getRequestUrl().includes("https://www.example.com/")) {
// let rawfileName: string = this.schemeMap.get(event.request.getRequestUrl())!;
let rawfileName : string = event.request.getRequestUrl().replace("https://www.example.com/","")

let mimeType = this.mimeTypeMap.get(rawfileName.split(".")[rawfileName.split(".").length-1]);
if(mimeType==='image/svg+xml'){
//这里加一下解码
rawfileName = decodeURIComponent(rawfileName)
}
let response = new WebResourceResponse();
// 构造响应数据,如果本地文件在rawfile下,可以通过如下方式设置
response.setResponseData($rawfile(rawfileName));
response.setResponseEncoding('utf-8');
response.setResponseMimeType(mimeType);
response.setResponseCode(200);
response.setReasonMessage('OK');
response.setResponseIsReady(true);
return response;
}
 return null;
})

更多关于HarmonyOS 鸿蒙Next rawfile当中中文路径会读取失败的问题,是必须为英文路径吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


只能英文路径

针对HarmonyOS 鸿蒙Next中rawfile中文路径读取失败的问题,确实存在中文路径可能导致读取失败的情况。这通常是由于系统或开发工具的路径处理机制对中文支持不够完善所致。为了确保rawfile能被正确读取,建议使用英文路径来命名文件和目录。

中文路径可能导致的问题包括但不限于:路径解析错误、文件访问权限问题以及开发工具或系统本身的bug。因此,在HarmonyOS鸿蒙Next应用开发中,为了避免路径问题导致的读取失败,建议开发者遵循以下最佳实践:

  • 使用英文和数字来命名rawfile中的文件和目录。
  • 确保路径中不包含特殊字符或空格,以减少潜在的路径解析问题。
  • 在开发和测试阶段,及时关注并测试不同路径命名下的文件读取情况。

如果遵循上述建议后问题依旧没法解决,请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部