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

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);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容