Pdf.js 传递一个带 # 的 path 出錯
2020-01-21 本文已影响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);