美文网首页代码片段分享
Pdf.js 传递一个带 # 的 path 出錯

Pdf.js 传递一个带 # 的 path 出錯

作者: 花艺荣 | 来源:发表于2020-01-21 15:20 被阅读0次

    Android中用Pdf.js 查看PDF文件,
    docPath 为一个sdcard上的可访问PDF文件路径

     loadUrl("file:///android_asset/web/viewer.html?file=" + docPath);
    

    发现当path中存在# 时,文件不能打开,
    首先想到对docPath做encode处理,以解决一些特殊字符问题;
    大部分特殊字符encode后,都变得有效(不encode,文件打不开),
    但发现当path中存在# 和 空格时,文件仍无法正常打开,当然,
    如果不encode,空格是有效的;然后试着把空格replace回来,发现可以了;
    但 “#” encode前后都不行,“#” encode后是“%23”,试着把“%”再encode一下,
    变成“%2523”,就好了!!

     if (!TextUtils.isEmpty(docPath)) {
                  String path = null;
                  try {// 获取以字符编码为utf-8的字符
                      path = URLEncoder.encode(docPath,"utf-8");
                      docPath = path.replace("%2F","/").replace("+", " ")
                      .replace("%23", "%2523");
                  } catch (UnsupportedEncodingException e) {
                      e.printStackTrace();
                  }
              }
              loadUrl("file:///android_asset/web/viewer.html?file=" + docPath);
    

    相关文章

      网友评论

        本文标题:Pdf.js 传递一个带 # 的 path 出錯

        本文链接:https://www.haomeiwen.com/subject/pryfzctx.html