Obsidian 1.8.9 使用 “Download attachments for current file” 命令下载名称带有中文字符的网络图片时,下载到本地的图片名称是原网络图片名称 URL 编码后的字符串,这就导致图片是成功下载下来了,笔记中的链接也跟着改动了,但 Obsidian 无法正常显示该图片,提示找不到该图片。
因为 Obsidian 默认会将其解码为原网络图片名称去本地找那个图片,但那张图片名称已经是 URL 编码后的了,对应不上,所以找不到(Local Images 插件也有这个问题→_→)。
这里有一个图片名称带有中文的网络图片,可以测试下:

“Download attachments for current file” 命令问题解决思路:
- 下载时保存为原始图片名称(不编码),或者 md5;
- Obsidian 解析本地链接时不解码(这似乎可能性不大,会影响历史数据的展示)。
其他解决方法:
- 下载含中文名称的图片后,将图片名称改为没有特殊字符的名字,手动修改链接;
- 下载含中文名称的图片后,将本地链接中图片名称的每个“%”改为“%25”;
- 使用 Local Images Plus 等将下载后图片名称改为 md5 的插件。
还真是,wiki链接没问题。但我用的是 markdown 的链接语法,想的是兼容性好点儿,结果有这问题(typora 0.11.18 也无法正常显示该图片)。
把本地链接中图片名称的每个“%”改为“%25”就能显示了:
这俩链接格式确实经常有问题
只用obsidian的话wikilink支持更好一些,我用到现在只碰到过vault explorer插件漏支持wikilink封面的问题,碰到的时候都是用quickadd脚本手动转成wikilink的
不过楼主为了保证兼容性还是继续用markdown吧,等官方支持外应该就只能临时写个脚本批量重命名一下
嗯,这块是有点儿坑。
本来不想费劲弄脚本的,找了个 Local Images Plus 插件,准备都下载成 md5 名称,结果它会把图片都强制转成 webp 格式(知道它小但这也太强行了点),配置里也没找到开关。启动时间基本位列我 20 个插件的前几名,我只是想下载个能看的图片而已……
只能抽空研究下脚本了
应该是 Markdown 链接不太支持文件名包含 %。建议重命名文件,而不是将链接改成 %25。不然下次再重命名,只要文件名含 % 号,还是不能正常显示。
应该不是 markdown 链接不太支持”%“的问题,而是 Obsidian 应该是先对 ![]()
的 ()
内的部分URL解码再用它去找的附件(我隐约记得 github 的 markdown 本地链接好像没这问题)。
而且不只是文件名包含”%“不行,文件夹名称包含”%“也不行,原因还是前面说的那个。
要是只想正常显示图片的话,确实是重命名文件更好(这本来应该是 Obsidian 那个命令的活
)。
主要是我之前想着直接正则批量替换下”%“比较快,然后就可以用【Custom Attachment Location】插件批量重命名并移动笔记附件了(对,“Download attachments for current file”命令下载的名称带有中文字符的图片,这种附件整理插件也处理不了)。
个人使用时,【Custom Attachment Location】插件 7.4.1 收集笔记的附件数量超过 20 个时,会报错,然后不停重复整理附件,除非把 Ob 关了
。
所以后来又换回【Attachment Management】插件了。不过这插件也整理不了 Ob 那个命令下载的问题图片。而且就算替换链接中的”%“,这插件也还是收集不了,只有重命名文件才能收集 
对的,如果链接含有 % 号,就会被误识别成编码后的 URL,然后进行解码操作,反而就解错了。所以是不“太”支持。如果要解释的话,应该也就这么解释,但我怕说太死了不太好。
主要也只是想提醒不要花精力写批量替换链接的脚本,而应该重命名文件或文件夹。看到楼主也不是光批量替换链接,还是会重命名文件,也就放心了。
另外推荐楼主去英文论坛报 bug。
英文论坛翻译着费劲……反正有一定的解决方法,也不太着急,之后看情况吧